SSL사용


PHPoC는 다음 두 가지 명령을 통해 SSL 기능을 사용할 수 있습니다.

명령어 사용 가능한 펌웨어 버전
"set api ssl" 모든 버전
"set api tls" 1.5.0 이상

두 명령의 수행결과는 완전히 동일합니다.

다음은 SSL 서버 설정 예 입니다.

SSL 서버 설정 예

<?php
$port = 1470;                                   // 포트번호
$pid = pid_open("/mmap/tcp0");                  // 0번 TCP 열기
pid_ioctl($pid, "set api ssl");                 // SSL 사용
pid_ioctl($pid, "set ssl method server");       // SSL 서버 설정
pid_bind($pid, "", $port);                      // 바인딩
pid_listen($pid);                               // TCP 수동접속 대기
do
    $state = pid_ioctl($pid, "get state");
while(($state != SSL_CLOSED) && ($state != SSL_CONNECTED));

if($state == SSL_CONNECTED)
{
    echo "Connection has been established!\r\n";
    pid_close($pid);                            // TCP 접속 종료
}
?>

※ PHPoC를 SSL 서버로 사용할 때 제품에 인증서가 저장되어 있어야 합니다. 인증서는 PHPoC Debugger를 통해 생성하거나 저장할 수 있습니다.

다음 예제는 PHPoC를 SSL클라이언트로 설정하는 예 입니다.

SSL 클라이언트 설정 예

<?php
$addr = "10.1.0.2";                            // 서버 IP주소
$port = 1470;                                  // 포트번호
$pid = pid_open("/mmap/tcp0");                 // 0번 TCP 열기
pid_ioctl($pid, "set api ssl");                // SSL 사용
pid_ioctl($pid, "set ssl method client");      // SSL 클라이언트 설정
pid_bind($pid, "", 0);                         // 바인딩
pid_connect($pid, $addr, $port);               // TCP 능동접속 시도
do
    $state = pid_ioctl($pid, "get state");
while(($state != SSL_CLOSED) && ($state != SSL_CONNECTED));

if($state == SSL_CONNECTED)
{
    echo "Connection has been established!\r\n";
    pid_close($pid);                           // TCP 접속 종료
}
?>

※ PHPoC의 메모리 사용량이 늘어나면 SSL 통신을 위한 메모리 공간이 확보되지 못해 SSL동작이 원활하지 않거나 불가능 할 수 있습니다.