linux系统生成ssl证书后nginx配置

本文主要讲的是linux系统生成ssl证书后nginx配置,话不多说直接开整:

一、证书生成

1. 生成证书

进入Linux系统中,执行如下命令。期间会提示输入密码,输入两次相同密码即可。

openssl genrsa -des3 -out server.key 2048

使用AES-256加密算法生成2048位RSA私钥,防止私钥泄露导致信任链被破坏;

安全要点:私钥必须设置强密码(建议16位以上混合字符),并存储在加密存储设备中

说明:

openssl: OpenSSL 工具的命令行执行器
genrsa: 生成RSA密钥的命令
-des3: 使用Triple-DES算法对生成的私钥进行加密,这会在生成私钥时要求你设置一个密码,以便在每次使用私钥时都需要提供密码

-out selfca.key: 指定生成的私钥的输出文件名为 selfca.key,私钥文件将被保存在当前工作目录中

2048: 指定生成的RSA私钥的位数为2048位,这是一种常见的安全密钥长度 

2. 去除密码校验

如果想去除此输密码的步骤,可以执行如下命令,根据使用需求选择。

openssl rsa -in server.key -out server.key

3.创建证书申请文件

根据要求填写证书申请相关信息。

openssl req -new -key server.key -out server.csr

说明:

enssl req: 这是 OpenSSL 工具中用于处理证书签署请求(CSR)的命令

-new: 表示创建新的 CSR

-x509: 表示生成自签名的 X.509 证书,而不是生成 CSR

-days 3650: 设置证书的有效期为 3650 天(10 年)

-key selfca.key: 指定用于生成证书的私钥文件为 selfca.key

-subj "/C=CN/ST=GD/L=ZS/O=SJJ/OU=SJJ/CN=CA": 设置证书主题(Subject)的信息。这里使用了简化的 Distinguished Name (DN),包括了国家(C=CN)、省/州(ST=GD)、城市(L=ZS)、组织(O=SJJ)、组织单位(OU=SJJ)、通用名称(CN=CA)等信息

-out selfca.crt: 指定生成的证书文件的输出路径和文件名,这里为 selfca.crt 

4.生成自签证书,即根证书CA

openssl req -new -x509 -key server.key -out ca.crt -days 3650

5.创建服务器证书

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

openssl x509: 这是 OpenSSL 工具中用于处理 X.509 证书的命令

-req: 表示输入的文件是证书签署请求(CSR)

-extfile <(printf "subjectAltName=IP:xx.xx.xx.xx"): 使用扩展文件,该文件包含了额外的证书扩展信息。在这里,subjectAltName 扩展用于指定主体的备用名称(Subject Alternative Name),这里指定了 IP 地址 xx.xx.xx.xx。你也可以在方括号中添加其他主机名或 IP 地址,用逗号分隔

-days 3650: 设置生成的证书的有效期为 3650 天(10 年)

-in server.csr: 指定输入的证书签署请求文件,这里为 server.csr

-CA selfca.crt: 指定用于签署证书的 CA 证书文件,这里为 selfca.crt

-CAkey selfca.key: 指定用于签署证书的 CA 私钥文件,这里为 selfca.key

-CAcreateserial: 创建一个新的序列号文件,该文件用于跟踪 CA 签署的证书的唯一性

-out server.crt: 指定生成的证书文件的输出路径和文件名,这里为 server.crt 

证书生成完成

最终列表:

selfca.key:CA私钥,用于后续签名SSL证书

selfca.crt:CA根证书,用于后续签名SSL证书,需要加入到操作系统或浏览器的信任列表中

server.key:服务器私钥,需要配置到https服务,比如Apache和Nginx配置文件中

server.csr:证书签署请求文件,后续没用了

server.crt:自签名SSL证书,需要配置到https服务,比如Apache和Nginx配置文件中,这就是代表服务器的身份证件

https://blog.youkuaiyun.com/friend_X/article/details/146349295 

二、配置Nginx的https

1.配置

  1. 把刚才生成的文件 server.key,server.crt 拷贝至nginx所在服务器的目录下。
  2. 编辑nginx文件 nginx.conf,指定文件所在的路径。

server {
    listen         443 ssl;
    server_name    enterprise.com;

    ssl_certificate      /data/ssl/server.crt;
    ssl_certificate_key  /data/ssl/server.key;
    ssl_session_timeout  5000m;
    ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers          HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
}

这两个目录可以随便放,只要能访问到即可 /data/ssl/server.crt、/data/ssl/server.key;

2.重启nginx看效果

nginx -s reload

记得重启nginx!

由于是临时的,所以会出现这个提示,不影响使用,如果要安全的可以自己去申请

https://blog.youkuaiyun.com/w172717/article/details/135973073

扩展:

如果生成的是这种格式文件,不打紧,直接替换即可,其他不变:

ssl_certificate /etc/ssl/xxx.pem;
ssl_certificate_key /etc/ssl/xxx.key;

https://blog.youkuaiyun.com/friend_X/article/details/146349295

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alex_81D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值