처음부터 SSL을 처음 사용하고 첫 단계를 수행했습니다. 내 도메인의 RapidSSL에서 SSL 인증서를 구입 한 후 인증서 설치 단계를 수행했습니다. 일반적으로 인증서는 유효하며 웹 서버 (nginx v1.4.6-Ubuntu 14.04.1 LTS)에서 작동하지만 OCSP OCSP를 활성화하려고하면 nginx error.log에 다음 오류가 발생합니다.
인증서 상태를 요청하는 동안 OCSP_basic_verify () 실패 (SSL : 오류 : 27069065 : OCSP 루틴 : OCSP_basic_verify : 인증서 확인 오류 : 오류 확인 : 로컬 발급자 인증서를 가져올 수 없음), 응답자 : gv.symcd.com
커맨드 라인 에서이 명령으로 시도했습니다.
openssl s_client -connect mydomain.tld : 443 2> & 1 </ dev / null
그리고 내 error.log와 같은 “같은”오류가 발생했습니다.
[…] SSL- 세션 : 프로토콜 : TLSv1.2 암호 : ECDHE-RSA-AES256-GCM-SHA384 […] 시작 시간 : 1411583991 시간 초과 : 300 (초) 반환 코드 확인 : 20 (로컬을 가져올 수 없음) 발급자 인증서)
그러나 GeoTrust Root Certificat을 다운로드하고 다음 명령으로 시도하십시오.
openssl s_client -connect mydomain.tld : 443 -CA 파일 GeoTrust_Global_CA.pem 2> & 1 </ dev / null
확인은 괜찮습니다 :
[…] SSL- 세션 : 프로토콜 : TLSv1.2 암호 : ECDHE-RSA-AES256-GCM-SHA384 […] 시작 시간 : 1411583262 시간 초과 : 300 (초) 반환 코드 확인 : 0 (ok)
따라서 어떻게 든 GeoTrust Root Cert를 찾을 수 없습니다.
내 nginx 사이트 구성 :
server {
listen 443;
server_name mydomain.tld;
ssl on;
ssl_certificate /etc/ssl/certs/ssl.crt;
ssl_certificate_key /etc/ssl/private/ssl.key;
# Resumption
ssl_session_cache shared:SSL:20m;
# Timeout
ssl_session_timeout 10m;
# Security options
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
# OCSP Stapling
# It means that you sent status info about your certificate along with the request,
# instead of making the browser check the certificate with the Certificate Authority.
# This removes a large portion of the SSL overhead, the CloudFlare post above explains it in more detail.
ssl_stapling on;
ssl_stapling_verify on;
#ssl_trusted_certificate /etc/ssl/certs/ssl.pem;
#resolver 8.8.8.8 8.8.4.4 valid=300s;
#resolver_timeout 10s;
# This forces every request after this one to be over HTTPS
add_header Strict-Transport-Security "max-age=31536000";[...]};
RapidSSL은 그의 설명서에 다음 순서로 ssl.crt에 다음 인증서를 추가해야한다고 썼습니다.
- myserver.crt
- 중간 CA 번들 (RapidSSL SHA256 CA-G3)
- 중급 CA 번들 (GeoTrust Global CA)
그래서 나는 …
지금은 내가 뭘 잘못하고 있는지 전혀 모른다 … 잘만되면 여기 누구든지 나를 도울 수있다.
감사합니다!
답변
오류 메시지는 동일하지만이 두 오류는 관련이 없습니다.
[…] SSL- 세션 : 프로토콜 : TLSv1.2 암호 : ECDHE-RSA-AES256-GCM-SHA384 […] 시작 시간 : 1411583991 시간 초과 : 300 (초) 반환 코드 확인 : 20 (로컬을 가져올 수 없음) 발급자 인증서)
위의 오류는 openssl_client 명령 을 발행했습니다 . Florian Heigl이 설명했듯이 openssl_client에의 Globalsign Root 인증서가 필요하기 때문에이 오류가 발생합니다 /etc/ssl/certs
.
인증서 상태를 요청하는 동안 OCSP_basic_verify () 실패 (SSL : 오류 : 27069065 : OCSP 루틴 : OCSP_basic_verify : 인증서 확인 오류 : 오류 확인 : 로컬 발급자 인증서를 가져올 수 없음), 응답자 : gv.symcd.com
이 오류의 경우, 특히 nginx.conf 에 행 을 추가 할 때 nginx ocsp 루틴에 의해 발행되었습니다 ssl_stapling_verify on;
.
일부 발췌 여기에 문서 의 ssl_stapling_verify
가 오류가 발생 이유를 설명
구문 : ssl_stapling_verify on | 떨어져서;
서버에 의한 OCSP 응답 확인을 활성화 또는 비활성화합니다.
확인이 작동 하려면 ssl_trusted_certificate 지시문을 사용하여 서버 인증서 발급자 인증서, 루트 인증서 및 모든 중간 인증서 를 신뢰할 수있는 것으로 구성해야합니다.
즉, (2) 중간 CA 번들 (RapidSSL SHA256 CA-G3) 및 (3) 중간 CA 번들 (GeoTrust Global CA) 을 ssl_trusted_certificate
지정 해야 합니다.
cat GeoTrustGlobalCA.crt rapidsslG3.crt > ocsp-chain.crt
그리고 추가 ocsp-chain.crt
로 ssl_trusted_certificate
지시.
답변
나는 이것의 일부에만 대답 할 수 있습니다.
openssl s_client -connect mydomain.tld : 443 2> & 1 </ dev / null
/ etc / ssl / certs에 Globalsign Root 인증서가 필요합니다. 인증서 패키지가 있습니다. 설치되어 있습니까?