申请

目前是在 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 生成,一个文件内按顺序含有 testGoDaddy中间、GoDaddy 三个证书

  • ssl_certificate_key 指令需要 test.com.key 文件

新证书验证

20131013日我们收到了新的 gd_bundle.crt test.com.crt 两个文件,理论上应该是匹配旧的 test.com.key 的。为了验证这个猜测,使用下列步骤:

 

  1. 生成一个文本文件infile

  2. 用旧的 test.com.key 文件,执行

openssl rsautl -sign -in infile -inkey test.com.key -out sig

infile 进行签名,输出到 sig 文件

  1. 用新的 test.com.crt 文件,执行

openssl rsautl -verify -in sig -certin -inkey test.com.crt

对签名进行验证,如果验证的内容和 infile 原文相同,说明 crt key 是匹配的


证书监控,参考本人另一篇文章

zabbix 监控ssl证书是否过期



 收到报警后,需要密切关注,准备更新证书,更新操作如下:

 1,获取新的证书,找ssl证书相关负责人获取证书,证书主要包括类似这样的文件:278e42c55249ed.crtgd_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

5git上传及线上puppet更新。