2013-10-03 2 views
2

에서 파일로 내보내십시오. 중간 URL과 함께 루트 SSL 인증서를 주어진 URL의 파일로 가져 오는 방법은 무엇입니까? 이상적으로 어떤 리눅스 쉘 호환 명령어 라인을 통해, 하지만 수동으로 할 것입니다. 업데이트 : 대화식으로 Chrome을 사용하여 인증서를 검토하면 선택적으로 내보낼 수 있습니다. 해당되는 경우 체인 전체를 잡을 수있는 방법이 있습니다. 이제 스크립트 가능한 메서드 만 찾고 있습니다.SSL 인증서 및 중간체를 주어진 https URL

배경 :

mono nuget.exe install ./packages.config -o ./packages 

는만큼 required certificates are installined in the machine's Trust store로, 우분투 프로젝트 패키지를 설치합니다. 일부에서는, 다음과 같이 이루어집니다 :

$ certmgr -ssl https://nugetgallery.blob.core.windows.net 

이 명령은 -ssl 옵션, 인증서와 지정된 URL에서 어떤 중간을 잡고, 및 사용자의 확인이 필요합니다. 서버 빌드를 자동화하려고하므로 사용자 확인을 요구하지 않고 인증서를 추가하고 싶습니다. 내가 명령에 응답 배관 시도했습니다

- 즉 : 작동하지 않습니다

$ echo "Yes" | certmgr -ssl https://nugetgallery.blob.core.windows.net 

. certficates를 파일로 내보내려고 했으므로 빌드 프로젝트에 추가 할 수 있지만 mono certmgr은 아직 'put'을 구현하지 않았습니다.

+0

아마도이 도움이 : http://stackoverflow.com/questions/14773904/perl-script-for-showing-ssl-certs –

+1

감사합니다. 그것은 저를 올바른 방향으로 향하게합니다. perl mod는 openssl을 둘러싼 래퍼입니다. 이미 설치되어 있습니다. 검색 용어로 OpenSSL을 사용하면 유망한 것으로 보이는이 SO 답변에 나를 안내합니다 : http://stackoverflow.com/a/16797458/149060. –

답변

2

가정의 openssl이 설치되어,이 커맨드는 :

echo | openssl s_client \ 
    -showcerts \ 
    -connect nugetgallery.blob.core.windows.net:443 2>&1 | 
     sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > cert.pem 

이 체인에 관련된 모든 세 개의 인증서를 포함하는 파일을 생성합니다.

덕분에이 질문에 this answer : Using openssl to get the certificate from a server 사슬을 얻을 수 있습니다. 다음 명령은 저장된 인증서를 Trust Store에로드합니다.

openssl crl2pkcs7 -nocrl -certfile cert.pem -out cert.p7b 
certmgr -add -c -m Trust ./cert.p7b