我是靠谱客的博主 典雅狗,最近开发中收集的这篇文章主要介绍《Linux运维实战:使用openssl生成免费证书》一、背景二、生成证书三、Nginx配置四、安装客户端证书总结:整理不易,如果对你有帮助,可否点赞关注一下?,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 一、背景
- 二、生成证书
- 2.1、证书格式为cer
- 2.2、证书格式为pem
- 三、Nginx配置
- 四、安装客户端证书
- 总结:整理不易,如果对你有帮助,可否点赞关注一下?
一、背景
由于第三方外部应用使用的是https,系统是部署在专网环境,无法使用外网ssl证书,所以需要将我们的系统在内网中实现全站https,才能调用第三方接口,这里采用自签名的证书方式且使用openssl工具实现。
二、生成证书
2.1、证书格式为cer
# 1、创建CA.cnf文件;
# 说明:CA.cnf文件是为申请CA根证书的配置文件
mkdir -p /opt/ssl && cd /opt/ssl
vim CA.cnf
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = root_ca
[ req_distinguished_name ]
# 以下内容可随意填写
countryName = CN (2 letter code)
countryName_min = 2
countryName_max = 2
stateOrProvinceName = guangdong
localityName = shenzhen
0.organizationName = sxdl
organizationalUnitName = technology
commonName = sxdl
commonName_max = 64
emailAddress = admin@sxdl.com
emailAddress_max = 64
[ root_ca ]
basicConstraints = critical, CA:true
# 2、ServerCA.ext
# 说明:ServerCA.ext是生成服务器证书的扩展配置文件
cd /opt/ssl && vim ServerCA.ext
subjectAltName = @anxin
extendedKeyUsage = serverAuth
[anxin]
# 域名,如有多个用DNS.2,DNS.3…来增加
DNS.1 =
# IP地址
IP.1 = 192.168.1.170 #根据自己实际情况填写
# 3、生产CA根证书和服务器证书
vim cert.sh
#!/bin/bash
openssl req -x509 -newkey rsa:2048 -out CA.cer -outform PEM -keyout CA.pvk -days 10000 -verbose -config CA.cnf -nodes -sha256 -subj "/CN= CA"
openssl req -newkey rsa:2048 -keyout ServerCA.pvk -out ServerCA.req -subj /CN=192.168.1.170 -sha256 -nodes
openssl x509 -req -CA CA.cer -CAkey CA.pvk -in ServerCA.req -out ServerCA.cer -days 10000 -extfile ServerCA.ext -sha256 -set_serial 0x1111
# 4、执行脚本
sh cert.sh
# 总结
# 如果当前ip与我这里的ip不一致,请修改为对应的ip
执行完效果如下:
2.2、证书格式为pem
# 1、创建CA.cnf文件;
# 说明:CA.cnf文件是为申请CA根证书的配置文件
mkdir -p /opt/ssl && cd /opt/ssl
vim CA.cnf
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = root_ca
[ req_distinguished_name ]
# 以下内容可随意填写
countryName = CN (2 letter code)
countryName_min = 2
countryName_max = 2
stateOrProvinceName = guangdong
localityName = shenzhen
0.organizationName = sxdl
organizationalUnitName = technology
commonName = sxdl
commonName_max = 64
emailAddress = admin@sxdl.com
emailAddress_max = 64
[ root_ca ]
basicConstraints = critical, CA:true
# 2、ServerCA.ext
# 说明:ServerCA.ext是生成服务器证书的扩展配置文件
cd /opt/ssl && vim ServerCA.ext
subjectAltName = @anxin
extendedKeyUsage = serverAuth
[anxin]
# 域名,如有多个用DNS.2,DNS.3…来增加
DNS.1 =
# IP地址
IP.1 = 192.168.1.170 #根据自己实际情况填写
# 3、生产CA根证书和服务器证书
vim cert.sh
#!/bin/bash
openssl req -x509 -newkey rsa:2048 -out CA.cer -outform PEM -keyout CA.pvk -days 10000 -verbose -config CA.cnf -nodes -sha256 -subj "/CN= CA"
openssl req -newkey rsa:2048 -keyout ServerCA.key -out ServerCA.req -subj /CN=10.194.2.52 -sha256 -nodes
openssl x509 -req -CA CA.cer -CAkey CA.pvk -in ServerCA.req -out ServerCA.pem -days 10000 -extfile ServerCA.ext -sha256 -set_serial 0x1111
# 4、执行脚本
sh cert.sh
# 总结
# 如果当前ip与我这里的ip不一致,请修改为对应的ip
执行完效果如下:
三、Nginx配置
# 1、拷贝证书文件到/etc/nginx目录
cd /opt/ssl
cp ServerCA.cer ServerCA.pvk /etc/nginx/
# 2、编辑nginx.conf文件
server {
listen 80;
server_name 192.168.1.170;
return 301 https://$host$request_uri;
}
server {
listen 443 default ssl; #监听443端口
server_name 192.168.1.170;
ssl_certificate /etc/nginx/ServerCA.cer;
ssl_certificate_key /etc/nginx/ServerCA.pvk;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
# 3、加载配置文件
nginx -t
nginx -s reload
四、安装客户端证书
说明:将CA.cer文件拷贝到windows电脑桌面上,点击安装。
如下图所示:
查找证书
【Win+R】—> certmgr.msc —> 操作 —>查找证书
注意事项一:如果此时还是不安全,如下图所示, 记得一定要重启电脑然后在打开浏览器访问后尝试
注意事项二:如果此时还是不安全,如下图所示
解决方法:在chrome的地址栏里输入 chrome://net-internals/#hsts
安装完成之后,效果图如下:
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:Linux运维实战总结
最后
以上就是典雅狗为你收集整理的《Linux运维实战:使用openssl生成免费证书》一、背景二、生成证书三、Nginx配置四、安装客户端证书总结:整理不易,如果对你有帮助,可否点赞关注一下?的全部内容,希望文章能够帮你解决《Linux运维实战:使用openssl生成免费证书》一、背景二、生成证书三、Nginx配置四、安装客户端证书总结:整理不易,如果对你有帮助,可否点赞关注一下?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复