PHPoC는 다음 두 가지 명령을 통해 SSL 기능을 사용할 수 있습니다.
명령어 | 사용 가능한 펌웨어 버전 |
---|---|
"set api ssl" | 모든 버전 |
"set api tls" | 1.5.0 이상 |
두 명령의 수행결과는 완전히 동일합니다.
다음은 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클라이언트로 설정하는 예 입니다.
<?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동작이 원활하지 않거나 불가능 할 수 있습니다.