自建CA并生成自签名SSL证书
前言
相信点进这篇文章的人应该知道为什么要自建CA和自签名SSL证书了,因为买现成的SSL证书挺贵的,SSL证书通常有三种类型:域名级(DV)、企业级(OV)、增强级(EV),价格从每年几百元到上万元不等,再细分的话还有单域名证书、通配符证书、多域名证书等等,有些证书还可以追加域名。
一键生成自签名证书
我把用到的命令写了一个脚本,只要输入几个自定义密码就可以完成CA证书和SSL证书的创建,前提是在你的电脑安装了openssl命令,没有的自己安装一下吧,不多赘述。
自动化脚本
将下列命令放到shell脚本文件onekeyssl中执行即可
#!/bin/bashread -p "Enter your domain or ip [www.example.com/10.10.49.172]: " INPUTecho "1. Create ca private key..."openssl genrsa -des3 -out selfca.key 2048echo "2. Create ca root certificate..."openssl req -new -x509 -days 3650 -key selfca.key -subj "/C=CN/ST=BJ/L=BJ/O=MyRootCA/OU=MyCA/CN=CA" -out selfca.crtecho "3. Create server key and certificate signing request..."openssl req -newkey rsa:2048 -nodes -keyout server.key -subj "/C=CN/ST=BJ/L=BJ/O=MyRootServer/OU=MyServer/CN=$INPUT" -out server.csrecho "4. Sign SSL certificate..."openssl x509 -req -extfile <(printf "subjectAltName=IP:$INPUT") -days 3650 -in server.csr -CA selfca.crt -CAkey selfca.key -CAcreateserial -out server.crtopenssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt -certfile selfca.crtecho "5. Create end!"
echo "Copy server.crt and server.key to your server machine"
最终使用的就是server开头的这些证书,pfx可以用于Azure网关等服务。