1、去除秘钥*.key的加密保护:
openssl genrsa -des3 -out ca.key 4096#CA证书用于签署客户端证书
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
#创建服务器证书
openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr //生成证书私钥和证书请求文件(CSR:ertificate Signing Request),完成后会产生两个文件:server.key 和 server.csr,Linux习惯用crt作为后缀,Windows用cer作为后缀
openssl rsa -in nginx-selfsigned.key -out upnginx-selfsigned.key //注意需要到本地目录下执行
#使用CA签署服务器证书
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt #server.csr用于向CA请求签署服务器证书,server.crt为CA根证书签署的服务器证书
2、将*.key秘钥文件和*.crt证书文件合并为cer证书,执行:
openssl x509 -in …/private/nginx-selfsigned.key -in ./nginx-selfsigned.crt -out nginx-selfsigned.cer -outform der
其中,X.509证书通常指的是IETF的PKIX证书和X.509 v3证书标准的CRL 文件,即如RFC 5280(通常称为PKIX for Public Key Infrastructure(X.509))中规定的。
DER: 用于二进制DER编码证书而不是DER证书,也能承载CER或CRT扩展。
CRT/CER: 证书可以被编码为二进制DER或ASCII PEM。Linux习惯用crt作为后缀,Windows用cer作为后缀
KEY :KEY扩展名用于公钥和私钥PKCS#8。 键可以被编码为二进制DER或ASCII PEM。
附录:crt证书转换为pkcs12格式,它已被大部分浏览器支持安装,下面命令为转化客户端测证书,pkcs12格式会把客户端的密钥文件(key)和证书文件(crt)打包在一起,后缀为.p12
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
#转化为PEM编码
openssl pkcs12 -in client.p12 -out client.pem -clcerts
3、Nginx配置证书实例:
server {
listen 443;
server_name localhost;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_timeout 5m;
ssl_certificate server.cer; #证书文件
ssl_certificate_key server.key; #私钥文件
#ssl_client_certificate /etc/nginx/certs/ca.pem;
#ssl_verify_client on; #设为on,认证客户端
ssl_ciphers ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:-EXP;
}
4、证书更新,更新中间证书
1)检查确认,现场使用的为移动云提供的CA证书,他们采用SHECA品牌国际标准的SSL证书共包含私钥、证书、证书链3个文件:
用文本格式(Notepad)打开证书包里的证书链.cer中间证书文件,查看证书信息,比对第三段证书内容,最后四位PT9I=为新证书,不同提供商可能不同
2)升级证书:
打开证书工具网站的【证书格式转换】,目标格式选择ALL(所有常用格式),将证书.cer文件拖拽至证书文件的云图标内
完成后,下载的证书文件包含以下格式,请根据服务器类型更新证书文件,现场用PEM_Nginx
把对应证书导入WEB服务器的服务配置文件内,更新配置后,验证即可。
3)验证
方式一、使用CA在线检测工具验证UCA Global G2 Root证书有效日期,在【证书链信息部分】显示如下即可:
方式二、命令行验证
keytool -sslserver www.xxx.com:443 -printcert -rfc #输出的证书后四位满足预期,移动云要求后四位PT9I=为新证书
keytool -sslserver www.sheca.com:443 -printcert #查看UCA Global G2 Root证书日期为最新即可
5、附录:证书验证过程