Nginx 关于 OCSP 的调试部署
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Nginx 关于 OCSP 的调试部署,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4091字,纯文字阅读大概需要6分钟。
内容图文
![Nginx 关于 OCSP 的调试部署](/upload/InfoBanner/zyjiaocheng/934/e604af71bb2c47f8967ff779ea94655a.jpg)
因为某些浏览器的原因,可能我们需要为证书配置 OCSP 。
花了一下午进行调试和整理,现在已经成功,现在写下心得。
证书是在 PositiveSSL 购买的,也就是现在的 Comodo 证书。
如何生成 csr 并生成密钥,并购买证书,因为教程比较多,这里就不在阐述了。
一般我们购买证书之后,在邮件或者等地方都可以下载到我们需要的证书文件,常见的压缩包里会包含两个:
doamin.crt 也就是我们的域名网站证书
domain.ca-bundle 捆绑证书,包含根证书和中间证书。
当然如果没有中间证书,我们也可以在购买的对应证书官网下载,比如 comodo :https://support.sectigo.com/Com_KnowledgeDetailPage?Id=kA01N000000rfBO
我们来看一下该页面对中间证书的介绍,因为我们使用的是个人域名申请,所以这里就只看 Domain Validation 这一栏
Domain Validation
[Download] Sectigo RSA Domain Validation Secure Server CA [ Intermediate ] 为中间证书
[Download ] USERTrust RSA Root xSigned using AAA CA [ Cross Signed ] 为交叉签名
(Or)
[Download] Sectigo RSA DV Bundle [ Intermediate + Cross Signed ] 顾名思义,就是以上两个的合并文件。
其实我们下载上面的捆绑证书,然后在使用我们的域名证书合并在一起也就生成了完整的证书链:
cat domain.crt SectigoRSADomainValidationSecureServerCA.crt USERTrustRSAAAACA.crt > fullchain.crt
不过在 comodo 早版本之前,购买的证书曾经碰到过三个中间证书,合并规则如下:
cat domain.crt SectigoRSADomainValidationSecureServerCA.crt USERTrustRSAAAACA.crt AAACertificateServices.crt > fullchian.crt
因为 AAACertificateServices.crt 这个为旧版本的中间证书:https://support.sectigo.com/Com_KnowledgeDetailPage?Id=kA01N000000zFQj
好了,拿到证书的文件之后,我们开始测试并使用 OCSP:
查看csr文件信息命令:
openssl req -in domain.csr -noout -text
查看证书文件信息命令,csr 为申请域名之前自己生成的:
openssl x509 -in site.crt -noout -text
查看证书fingerprint的命令:
openssl x509 -in domain.crt -noout -fingerprint
接下来是证书及https验证相关的命令:
openssl x509 -in domain.crt -noout -subject
这个命令用来检查证书的主体,可以查看到证书的域,在这里我们可以查到 comodo 的 ocsp 网址为:http://ocsp.sectigo.com
openssl x509 -in domain.crt -noout -ocsp_uri
接下来我们验证 ocsp 结果,在这里一直卡在了一个错误:
注意,代码中的 domain.ca-bundle 为中间证书,domain.crt 为我们的域名证书,别错了,一般都是购买后下载压缩里的两个文件
openssl ocsp -issuer domain.ca-bundle -cert domain.crt -no_nonce -text -url http://ocsp.digicert.com/ -text -respout stapling_ocsp
返回错误信息如下:
OCSP Request Data:
Version: 1 (0x0)
Requestor List:
Certificate ID:
Hash Algorithm: sha1
Issuer Name Hash: 430BD20E4F137A1A6C918F24E5DA7E324D4733C8
Issuer Key Hash: 8D8C5EC454AD8AE177E99BF99B05E1B8018D61E1
Serial Number: E5CAE551D10B808BA44AA90A85E0F65F
Responder Error: unauthorized (6)
后来参考 http://www.voidcn.com/article/p-xirnixfk-btx.html 为 openssl 加上 host
openssl ocsp -issuer domain.ca-bundle.crt -cert domain.crt -no_nonce -url http://ocsp.sectigo.com -header "HOST" "ocsp.sectigo.com"
还是报错如下:
Response Verify Failure
140196948916112:error:27069076:OCSP routines:OCSP_basic_verify:signer certificate not found:ocsp_vfy.c:92:
www_luckfile_com.crt: good
This Update: Dec 2 20:04:31 2020 GMT
Next Update: Dec 9 20:04:31 2020 GMT
这期间测试过很多方法,包括更换 ocsp 网址,以及代码中的两个证书文件,都不行
知道无意间搜索到一篇文章才知道要使用如下格式,这里的 SectigoRSADVBundle.pem 不用管,等同于上面的 domain.ca.bundle 中间证书
重点是 -verify_other fullchain.pem 这个,也就是我们的完整证书链,也就是 域名证书+中间证书的合并文件,也就是 nginx 里的 ssl_certificate 配置文件
openssl ocsp -respout ocsp_sta.oscp -issuer SectigoRSADVBundle.pem -cert domain.crt -no_nonce -url http://ocsp.sectigo.com -header "HOST" "ocsp.sectigo.com" -verify_other fullchain.pem
返回如下,并生成 ocsp_sta.oscp 文件:
Response verify OK
www_luckfile_com.crt: good
This Update: Dec 2 20:04:31 2020 GMT
Next Update: Dec 9 20:04:31 2020 GMT
PS:我直接在终端 cat 了 ocsp_sta 文件,然后终端工具就花屏了
未完待续,下一步讲解部署 nginx
参考文章如下:
https://www.cnblogs.com/maintell/p/13601458.html
http://www.voidcn.com/article/p-xirnixfk-btx.html
https://sillydong.com/mysa/myserver/https_openssl.html
https://blog.csdn.net/HalsonHe/article/details/81030292
oscp 在线检测:https://www.getssl.cn/ocsp
内容总结
以上是互联网集市为您收集整理的Nginx 关于 OCSP 的调试部署全部内容,希望文章能够帮你解决Nginx 关于 OCSP 的调试部署所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。