\1. 检查服务器openssl是否可以使用

openssl version

4lhYOe.png

如果出现openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file

4lhsl8.png
解决方案:

执行find / -name libssl.so.1.1,找到libssl.so.1.1存放路径

4lholT.png
添加软连接

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1

ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

再次执行openssl version

2.使用openssl工具生成一个RSA私钥

openssl genrsa -des3 -out server.key 2048

如上:des3 是算法,2048位强度(为了保密性)。 server.key 是密钥文件名 -out的含义是:指生成文件的路径和名称,上面命令生成文件在当前目录。

4lhXkR.png
然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。
由于生成时候必须输入密码。你可以输入后再删掉。

然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次

mv server.key ssl.key(重命名key文件)
openssl rsa -in ssl.key -out server.key(重新生成免密key文件)
rm ssl.key(删除pem密码的key文件)

4l4Pne.png
3.根据key文件生成证书请求文件csr

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

4l4EtI.png
相关字段的信息

C => 国家 Country

ST => 省 State

L => 市 City

O => 机构 Organization

OU => 部门 Organization Unit

CN => 域名 Common Name (证书所请求的域名)

emailAddress => main administrative point of contact for the certificate

4.根据这server.key、ssl.csr文件生成crt证书文件

openssl x509 -req -days 3650 -in ssl.csr -signkey server.key -out ssl.crt

4l4QBQ.png
参数定义:

x509的含义: 指定格式

-days 的含义:证书的有效时间,天为单位
-in的含义: 指定请求文件
-signkey的含义: 自签名

-out:生成crt文件的路径和名称

\5. 在nginx安装目录下新建ssl文件夹,用来存放证书文件

mkdir -p /risen/soft/nginx/ssl

cp -r /root/server.key /risen/soft/nginx/ssl/(拷贝key文件,路径自己定义)

cp -r /root/ssl.crt /risen/soft/nginx/ssl/(拷贝crt文件,路径自己定义)

6.配置nginx证书配置(https协议)

4l4o4I.png

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议