生成CA根证书
生成CA私钥
shell
openssl genrsa -out ca.key 2048
生成CA根证书
shell
openssl req -x509 -new -nodes -key ca.key -sha256 -days 1024 -out ca.crt
为内网IP生成私钥和证书请求文件(CSR)
生成内外 IP 的私钥
shell
openssl genrsa -out server.key 2048
使用私钥生成证书请求文件
shell
openssl req -new -key server.key -out server.csr
填写内容与上述CA一致,最后两行直接回车跳过
创建证书扩展文件
为了确保为 内网IP 签名的证书能够用作服务器身份验证,需要为它创建一个扩展文件。创建一个名为 v3.ext 的文件,并添加以下内容
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
#这里 IP 替换成 DNS 就可以签名域名了
IP.1 = 192.168.140.120
使用 CA 的证书为内网 IP 签名证书
shell
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext
部署Nginx
对于nginx 来说,这里得到了 server.crt 和 server.key 就已经可以了对于nginx 来说,这里得到了 server.crt 和 server.key 就已经可以了
server {
listen 443 ssl;
server_name localhost;
#ssl证书
ssl_certificate ../../server.crt;
#私钥文件
ssl_certificate_key ../../server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
- 其中 .../.../server.crt和.../.../server.key两个文件需要放入到/etc/nginx文件夹下,否则nginx读不到,可以写绝对路径
参考https://blog.csdn.net/cmy768330962/article/details/134380663
上述参考还有tomcat的配置方式