申请
目前是在 GoDaddy 申请的
CN=*.test.com
收到文件后会打印一份送行政部法务组,存入保险柜。
文件构成
- gd_bundle.crt文件 GoDaddy提供的证书链
- test.com.crt文件 证书
- test.com.csr文件 证书签发请求(只第一次使用)
- test.com.key 私钥文件
nginx 上配置 HTTPS 需要两个参数:
- ssl_certificate 指令需要的文件由 cat test.com.crt gd_bundle.crt >test_chained.crt 生成,一个文件内按顺序含有 test、GoDaddy中间、GoDaddy根 三个证书
- ssl_certificate_key 指令需要 test.com.key 文件
新证书验证
2013年10月13日我们收到了新的 gd_bundle.crt 和 test.com.crt 两个文件,理论上应该是匹配旧的 test.com.key 的。为了验证这个猜测,使用下列步骤:
- 生成一个文本文件infile
- 用旧的 test.com.key 文件,执行
openssl rsautl -sign -in infile -inkey test.com.key -out sig
对 infile 进行签名,输出到 sig 文件
- 用新的 test.com.crt 文件,执行
openssl rsautl -verify -in sig -certin -inkey test.com.crt
对签名进行验证,如果验证的内容和 infile 原文相同,说明 crt 和 key 是匹配的
证书监控,参考本人另一篇文章
收到报警后,需要密切关注,准备更新证书,更新操作如下:
1,获取新的证书,找ssl证书相关负责人获取证书,证书主要包括类似这样的文件:278e42c55249ed.crt和gd_bundle-g2-g1.crt,分别为:test的证书、godaddy中间证书;
2,合成证书:cat 278e42c55249ed.crt gd_bundle-g2-g1.crt > test.crt(注意顺序:test证书在前,否则nginx会报不能匹配的错误);
3,删除godaddy根证书:gd_bundle-g2-g1.crt中间证书中会包含根证书,而一般浏览器中都带了godaddy根证书,所以需要在证书文件中删掉根证书,直接编辑证书文件,删掉最后一个证书块就可以了,为了确保删掉的是根证书可以在godaddy官网上将根证书下载下来确认下https://certs.godaddy.com/repository。
4,确认签名算法是不是 SHA-1 的,SHA-2 目前 Windows XP SP3 之前的版本不支持。
# openssl x509 -noout -text -in test.com.crt | grep ‘Signature Algorithm:‘
Signature Algorithm: sha1WithRSAEncryption
Signature Algorithm: sha1WithRSAEncryption
5,git上传及线上puppet更新。