2017-05-22 3 views
0

HTTPS를 통해 원격 호스트에 연결해야하는 Centos7에서 실행되는 응용 프로그램이 있습니다. 그러나 인증서를 확인할 수 없으며 실패합니다. 공정에 다음자체 서명 된 SSL 인증서를 신뢰할 수 없음

openssl s_client -connect 10.65.127.9:443 <<<'' | openssl x509 -out /etc/pki/ca-trust/source/anchors/mycert.pem 

그리고 실행 :

[[email protected]:~]# wget https://10.65.127.9/index.html 

--2017-05-22 09:03:01-- https://10.65.127.9/index.html 
Connecting to 10.65.127.9:443... connected. 
ERROR: cannot verify 10.65.127.9's certificate, issued by ‘/CN=us6877vnxe7827’: 
Unable to locally verify the issuer's authority. 
To connect to 10.65.127.9 insecurely, use `--no-check-certificate'. 

그래서 내가 호스트에서 인증서를 얻을 : 내가 wget을 사용하여 서버에서 파일을 다운로드하려고하면 또한, 나는 아래의 오류 그것은 : 나는 실행하는 경우이 그러나 ... 같은 문제를 초래

update-ca-trust extract 

을 :

openssl s_client -connect 10.65.127.9:443 -showcerts -debug 
내가 무엇을 누락 될 수 있습니다

depth=0 CN = us6877vnxe7827 
verify error:num=20:unable to get local issuer certificate 
verify return:1 
depth=0 CN = us6877vnxe7827 
verify error:num=21:unable to verify the first certificate 
verify return:1 
--- 
Certificate chain 
0 s:/CN=us6877vnxe7827 
i:/CN=us6877vnxe7827 
Server certificate 
subject=/CN=us6877vnxe7827 
issuer=/CN=us6877vnxe7827 
--- 
No client certificate CA names sent 
--- 
Verify return code: 21 (unable to verify the first certificate) 

모든 아이디어 : 내가 할 17,451,515,

몇 가지 오류 및 다양한 메시지를 얻을? 추가 정보가 도움이되면 알려 주시기 바랍니다.

+0

스택 오버플로는 프로그래밍 및 개발 관련 질문에 대한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제와는 거리가 먼 것처럼 보입니다. 도움말 센터에서 [여기에서 내가 질문 할 수있는 항목은 무엇입니까?] (http://stackoverflow.com/help/on-topic)를 참조하십시오. 아마도 [Super User] (http://superuser.com/) 나 [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/)가 더 나은 곳이 될 것입니다. 또한 [Dev Ops에 대한 질문은 어디에 게시합니까?] (http://meta.stackexchange.com/q/134306) – jww

답변

1

wget의 경우 https 서버 인증서에 서명 한 CA (Certificate Authority) 인증서를 제공해야합니다. 당신이 그 CA 인증서가있는 경우 - 당신이 그들을 필요가 없습니다 당신이 HTTPS 서버 인증서 확인을 생략 할 (보안되지 않은 및 위험 할 수 있습니다) 경우 --ca-certificate=file 또는 --ca-directory=directory 옵션

아래에 추가 한 후 --no-check-certificate 옵션을 사용합니다.

+0

아, 알 수 있습니다. 제대로 서명 된 인증서가 있고 그것을 wget (--ca-certificate = file)으로 가리키는 서버의 CA 인증서 중 하나에 손을 넣을 수있었습니다. 그러나 자체 서명 인증서는 어떻게됩니까? 내 연구에서, 나는'openssl s_client -connect 10.65.127.9 : 443'을 사용하여 인증서를 얻을 수 있어야한다고 생각하지만 그것이 가져온 것이 작동하지 않는 것 같습니다. – azurepancake

+0

보다 구체적으로, wget은 인증서에 지시 한 후 "발행자의 권한을 로컬에서 확인할 수 없습니다"를 반환합니다. 예외로 추가 한 후에도 Firefox에서 인증서를 내보냈습니다. 그것은 내가 openssl을 사용하여 얻은 결과와 똑같은 결과입니다. – azurepancake

+0

자체 서명 인증서는 자체 CA 인증서입니다. – Oleg

0

GitLab 서버에 연결하려고하는 젠킨스와 동일한 문제가있었습니다. 이 경우에는 서버에 유효한 공식 인증서가 있지만 Java는 예외 인증서가 아닙니다.

귀하는 인증서를 다운로드하는 것이 옳습니다.

그러나 언급하신 응용 프로그램은 Java 가상 머신에서 실행되고있을 것입니다 (많은 응용 프로그램이 있습니다). 인증서를 PEM 파일로 다운로드 한 시점부터 VM의 신뢰할 수있는 인증서에 인증서를 추가해야 할 수 있습니다.

This article에는이를 수행하는 방법이 설명되어 있습니다. 희망이 도움이됩니다.

관련 문제