ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx 关于 OCSP 的调试部署

2020-12-04 17:58:07  阅读:455  来源: 互联网

标签:domain crt 证书 openssl Nginx OCSP com 调试 ocsp


因为某些浏览器的原因,可能我们需要为证书配置 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

标签:domain,crt,证书,openssl,Nginx,OCSP,com,调试,ocsp
来源: https://blog.csdn.net/myarche/article/details/110664255

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有