我是靠谱客的博主 典雅狗,最近开发中收集的这篇文章主要介绍《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配置四、安装客户端证书总结:整理不易,如果对你有帮助,可否点赞关注一下?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部