Ubuntu/OpenSSL

[OpenSSL] error:1416F086 해결하기

테서르 2021. 11. 22. 17:24
반응형

OpenSSL을 업데이트 하기 전에는 잘 작동하던 PHPMailer나 curl이 업데이트 이후 에러를 출력하며 작동이 되지 않았다.

 

뭔가 꼬였다 생각하여 테스트 서버를 포맷 후 OpenSSL 업데이트를 먼저 하고 apache와 php를 설치했는데도 composer를 설치하려니 에러를 출력하며 진행이 되지 않았다.

 

error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in Command line code on line 1

 

해결방안을 검색해보니 대부분 SSL 인증을 끄고 self-sign을 허용하면 해결된다는 것이었다. 그러나 근본적인 해결책도 아니고 보안을 생각하면 좋지 않은 방법이다.

 

그러다 curl 홈페이지에서 pem 파일을 다운받아 적용하면 된다는 글을 보고 적용해 보니 composer 설치가 정상적으로 진행되었다.

 

 

 

해결방법

 

1. curl 홈페이지에 올라온 cacert.pem 파일을 다운받는다.(링크 : https://curl.se/docs/caextract.html)

 

또는 wget을 사용하여 다운받을 수 있다.

#SSL 인증 에러가 발생하기 때문에 인증서 확인을 무시하여 다운로드 진행
wget https://curl.se/ca/cacert.pem --no-check-certificate

 

 

2. 다운로드 받은 cacert.pem 파일을 /etc/ssl/certs 폴더로 이동시킨다.

sudo mv cacert.pem /etc/ssl/certs/cacert.pem

 

3. 파일에 제대로 옮겨졌는지 확인을 한다.

cd /etc/ssl/certs
ls | grep cacert.pem

 

 

 

4. php의 설정을 수정하여 cacert.pem 파일 위치를 지정한다.

# 자신의 php 버전의 설정 파일 변경. 필자는 8.0버전을 사용하고 있어서 8.0 폴더에 접근함

# 콘솔에서 사용하는 경우
sudo vi /etc/php/8.0/cli/php.ini

# Apache와 PHP를 사용하는 경우
sudo vi /etc/php/8.0/apache/php.ini

 

 

설정파일 아래에 openssl 항목을 보면 openssl.cafile 설정값이 주석처리가 되어 있을 것이다. 주석을 제거하고 cacert.pem이 있는 위치를 추가한다.

vi에 진입 후 /openssl.cafile 입력 후 엔터를 누르면 빠르게 찾을 수 있다.

openssl.cafile=/etc/ssl/certs/cacert.pem

 

 

5. apache를 재시작하여 설정을 적용시킨다.

sudo service apache2 restart

 

이제 OpenSSL 에러가 뜨던 php 코드를 실행해 보면 정상 작동을 확인할 수 있다.

반응형

'Ubuntu > OpenSSL' 카테고리의 다른 글

[OpenSSL] OpenSSL 업데이트(직접 빌드하여 적용)  (0) 2021.10.31