테스트 사이트 - 개발 중인 베타 버전입니다

이니시스 결제 도중 OpenSSL 오류 발생시

· 5년 전 · 2856
* 오류 내용
Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /home/theway/www/test.php on line 9

* 원인
외부와 소켓통신을 위해서는 fsockopen 함수를 사용하는데, PHP 5.6 이상부터는 필수적으로 SSL 인증서 유효성을 검사합니다. 때문에 openSSL 루트 인증서가 없거나 환경구성이 잘못된 경우에는 위와 같은 오류가 발생할 수 있습니다. 단독서버거나 클라우드 호스팅이라면 서버 설정을 통해 문제를 해결할 수 있겠지만, 일반 호스팅이라면 호스팅 업체에 문의하거나 아래처럼 인증서의 유효성 검사를 비활성화하도록 코드를 수정해야 합니다.

* 코드 (/shop/inicis/libs/HttpClient.php : 53 Line)
[code]
$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'verify_peer', false);

if (!$this->sock = stream_socket_client($this->ssl.$this->host.':'.$this->port, $errno, $errstr, CONNECT_TIMEOUT, STREAM_CLIENT_CONNECT, $context)) {
// if (!$this->sock = @fsockopen($this->ssl . $this->host, $this->port, $errno, $errstr, CONNECT_TIMEOUT)) {

switch ($errno) {
case -3:
$this->errormsg = 'Socket creation failed (-3)';
case -4:
$this->errormsg = 'DNS lookup failure (-4)';
case -5:
$this->errormsg = 'Connection refused or timed out (-5)';
default:
$this->errormsg = 'Connection failed (' . $errno . ')';
$this->errormsg .= ' ' . $errstr;
}
return false;
}
[/code]

참고 : https://www.enteroa.com/2016/06/01/php-5-6%EC%9D%B4%EC%83%81-fsockopen-%EB%AC%B8%EC%A0%9C/

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
1483
1481
1479
1474
1473
1463
1458
1457
1456
1452
1449
1448
1442
1441
1426
1411
1389
1388
1372
1359
1357
1355
1348
1347
1338
1332
1328
1313
1307
1303