Nginx的HTTPS服务

HTTPS实现加密的原理:

客户端向服务端发起SSL连接请求(这是非对称加密的),服务端收到连接请求后向客户端发送公钥,这时客户端收到公钥后,进行对称加密并发送给服务端,最后服务端利用对称秘钥向客户端传输数据。

1、安装OpenSSL

yum -y install openssl

2、进入到/etc/nginx/ssl_key目录下生成key秘钥

mkdir /etc/nginx/ssl_key

cd /etc/nginx/ssl_key

openssl genrsa -idea -out wen.key 1024  #生成一个名为wen.key的秘钥
回车后提示要输入密码,设置的这个密码要记住。
再回车就再输入一次刚刚所设置的密码

输入了两次密码后能看到生成了一个名为wen.key的文件

3、生成csr文件

openssl req -new -key wen.key -out wen.csr   #生成一个csr文件
回车后可以随意填写一下信息
遇到 A challenge password []:  这一行的时候可以直接回车,设置空密码
接下来可以一路回车到结束

填完信息结束后,可以看到当前目录里有个wen,csr文件

4、生成crt文件

openssl x509 -req -days 3650 -in wen.csr -signkey wen.key -out wen.crt
回车后输入之前生成key文件时候的密码

输入密码后,当前目录就会生成一个crt文件

5、修改Nginx配置文件

cd /etc/nginx/conf.d
#切换到Nginx配置文件目录

cp default.conf https.conf
#复制一份默认的配置文件并改名为https.conf

vim https.conf
server {
    listen       443;
    server_name  localhost;
    ssl on;
    ssl_certificate /etc/nginx/ssl_key/wen.crt;
    ssl_certificate_key /etc/nginx/ssl_key/wen.key;
    index index.html index.htm

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /opt/https;
    }

6、在 /opt/https 目录下创建一个HTML文件

vim /opt/https/ssl.html
<html>
<head>
	<meta charset="utf-8">
	<title>ssl_key</title>
</head>
<h1>欢迎来到Nginx(ssl_key)</h1>
</body>
</html>

7、关闭Nginx服务

nginx -s stop -c /etc/nginx/nginx.conf

遇到 Enter PEM pass phrase: 则输入刚刚生成key时所设置的密码

8、开启Nginx服务

nginx -c /etc/nginx/nginx.conf

遇到 Enter PEM pass phrase: 则输入刚刚生成key时所设置的密码

9、查看443端口是否开启

netstat -luntp | grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5731/nginx: master  

10、在浏览器访问:  https://虚拟机的ip/ssl.html

猜你喜欢

转载自blog.csdn.net/vincen123/article/details/84191353