2016-06-22 7 views
2

Mojolicious와 중간 인증서를 사용하는 응용 프로그램을 시작할 때 나를 SSL 인증서와 키를 지정할 수 있습니다 : 나는의 RapidSSL 인증서로이 할 일 시도하고어떻게 mojolicious

> ./myapp.pl prefork --listen 'https://*:8485&cert=my.crt&key=my.key' 

. 오히려 불행 wget을이 서비스 결과에 연결 :

$ wget https://example.com:8485/ 
--2016-06-22 09:50:49-- https://example.com:8485/ 
Resolving example.com (example.com)... 1.3.2.4 
Connecting to example.com (example.com)|1.3.2.4|:8485... connected. 
ERROR: cannot verify example.com's certificate, issued by `/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G3': 
    Unable to locally verify the issuer's authority. 
To connect to example.com insecurely, use `--no-check-certificate'. 

없음 큰 놀라움을, 다른 응용 프로그램에서의 RapidSSL 인증서 표시를 사용할 때부터 내가 이뿐만 아니라 중간 인증서를 지정할 수 있습니다. 그래서 중간 인증서를 사이트 인증서에 연결하여 여기에 추가하려고 시도했지만 결과에 아무런 영향을 미치지 않습니다.

는 또한 별도의 파일에 루트 인증서와 함께 중간 인증서를 넣고 시작하려고 :

> ./myapp.pl prefork --listen 'https://*:8485&cert=my.crt&key=my.key&ca=myca.crt' 

하지만 결과는 동일하게 기분이 우울했다 :

error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure 

알려 주시기 바랍니다.

+0

https://metacpan.org/pod/Mojo::Server::Daemon#listen에 따르면 두 번째 시도가 작동해야합니다. – simbabque

+0

나는 문서를 읽었습니다 :) 또는 ... –

+1

CA param은 클라이언트 CA가 아니고 서버 CA (클라이언트 인증서를 확인하는 데 사용되지만 서버 만 사용)이기 때문에 CA param을 지정할 필요가 없습니다. – Logioniz

답변

1

서버가 리프 (서버) 인증서뿐만 아니라 다른 (중간) 인증서를 클라이언트에 보내려면 올바른 순서로 인증서 파일에 추가하면됩니다. 즉, my.crt는 다음과 같아야합니다.

----BEGIN CERTIFICATE----- 
MII... the leaf certificate 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
MII... the first intermediate certificate, i.e. the one which signed the leaf cert 
-----END CERTIFICATE----- 
...