SLOOP

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

· 2020-06-26 (금) 15:10:41 · 3618
* 오류 내용
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/
|
댓글을 작성하시려면 로그인이 필요합니다.

영카트5 팁자료실

455건
+
제목 글쓴이 날짜 조회
21-04-13 조회 3,488
21-04-12 조회 2,946
21-04-01 조회 3,001
21-02-16 조회 3,986
21-02-13 조회 4,609
21-02-01 조회 2,792
21-01-27 조회 4,504
21-01-05 조회 2,889
21-01-04 조회 3,496
21-01-02 조회 3,353
20-12-31 조회 6,150
20-12-28 조회 2,852
20-12-04 조회 3,839
20-12-02 조회 3,309
20-11-18 조회 3,306
20-11-13 조회 2,624
20-11-11 조회 3,379
20-11-09 조회 5,085
20-10-29 조회 4,954
20-10-22 조회 3,423
20-09-04 조회 4,682
20-09-02 조회 4,457
20-08-21 조회 2,321
20-07-13 조회 4,963
20-07-07 조회 3,602
20-07-01 조회 7,483
20-06-29 조회 4,069
20-06-29 조회 4,544
20-06-29 조회 4,030
20-06-26 조회 3,619