背景
由于公司研发人员增加,测试服务器不够用了,所以加了新服务器,新服务器的https证书就成问题了,总不能每次新增服务器都要重新生成https证书吧,而且还得让全公司研发都信任一遍,那是相当费事了。
解决方案
公司自己当证书颁发机构,所有人将公司设为受信任的证书颁发机构,这样公司颁发的所有证书就会被自动信任
生成rootCA
什么是CA?数字证书认证机构(英语:Certificate Authority,缩写为CA),下面是生成ca的方法
生成私钥
openssl genrsa -des3 -out myCA.key 2048
命令执行过程中会要求输入密码,由于是测试环境,对安全性没那么高,可以随便输一个。
生成rootCA
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 36500 -out myCA.pem
执行过程中会要求输入各种信息,按要求输入即可
完成
现在我们有myCA.pem,这就root CA。
然后在操作系统里信任myCA.pem。
使用rootCA生成证书
生成私钥
openssl genrsa -out dev.com.key 2048
生成签名请求
openssl req -new -key dev.com.key -out dev.com.csr
创建配置文件dev.com.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = dev.com
最后生成证书
openssl x509 -req -in dev.com.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial \
-out dev.com.crt -days 1825 -sha256 -extfile dev.com.ext
现在有3个文件dev.com.key(私钥),dev.com.csr(证书签名请求),dev.com.crt(证书)
nginx配置
ssl_certificate dev.com.crt;
ssl_certificate_key dev.com.key;
此文参考了这篇文章
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。