kap*_*ale 17 nginx ssl-certificate ocsp ubuntu-14.04
我是从头开始设置 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 -CAfile GeoTrust_Global_CA.pem 2>&1 < /dev/null
验证没问题:
[...]SSL 会话:协议:TLSv1.2 密码:ECDHE-RSA-AES256-GCM-SHA384 [...] 开始时间:1411583262 超时:300(秒)验证返回代码:0(确定)
所以不知何故没有找到/交付 GeoTrust 根证书。
我的 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";[...]};
Run Code Online (Sandbox Code Playgroud)
RapidSSL 在他的文档中写道,我应该按照以下顺序将以下证书添加到 ssl.crt 中:
所以我做了...
现在我不知道我做错了什么......希望这里的任何人都可以帮助我。
谢谢!
mas*_*oeh 17
尽管错误消息相同,但这两个错误是无关的。
[...]SSL 会话:协议:TLSv1.2 密码:ECDHE-RSA-AES256-GCM-SHA384 [...] 开始时间:1411583991 超时:300(秒)验证返回代码:20(无法获取本地发行人证书)
上面的错误是由openssl_client命令发出的。正如 Florian Heigl 所解释的,您会收到此错误,因为 openssl_client 需要/etc/ssl/certs
.
OCSP_basic_verify() 失败(SSL:错误:27069065:OCSP 例程:OCSP_basic_verify:证书验证错误:验证错误:无法获得本地颁发者证书),同时请求证书状态,响应者:gv.symcd.com
对于这个错误,它是由nginx ocsp 例程发出的,尤其是ssl_stapling_verify on;
在 nginx.conf 中添加行时。
这里从文档中摘录一些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
Run Code Online (Sandbox Code Playgroud)
并添加ocsp-chain.crt
到ssl_trusted_certificate
指令中。
归档时间: |
|
查看次数: |
32759 次 |
最近记录: |