10分钟给Nginx加上HTTPS【自签名方案】!

前言

HTTPS有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

方法 /步骤

笔者写这篇文章的时候,腾讯云还可以申请个人免费型HTTPS证书,但是这个不在本文考虑范围之内,如果想了解可以点击进入了解
10分钟给Nginx加上HTTPS【自签名方案】!_第1张图片

第一步:使用OpenSSL生成自签证书(Windows环境)

1. 安装OpenSSL:

编译好的OpenSSL下载地址:
此文下载的是64位的:Win64OpenSSL_Light-1_1_1g.exe
下载后安装!

2. 将安装成功的路径bin目录,添加到Win系统的Path路径:

10分钟给Nginx加上HTTPS【自签名方案】!_第2张图片

3. 在 D:\OpenSSL-Win64 目录下创建ssl目录,以后自签名证书存到这个目录;

10分钟给Nginx加上HTTPS【自签名方案】!_第3张图片

4. 启动 cmd 或者Powershell 命令行程序,切到 D:\OpenSSL-Win64\ssl 目录,开始创建证书。

  • 创建服务器私钥
openssl genrsa -des3 -out server.key 2048 

10分钟给Nginx加上HTTPS【自签名方案】!_第4张图片

5. 创建CSR证书请求文件

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

(名字公司随便填)
10分钟给Nginx加上HTTPS【自签名方案】!_第5张图片

6. 备份有秘密的私钥文件

copy server.key server.key.orig

7. 去掉私钥文件的密码

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

在这里插入图片描述

8. 使用服务器私钥签署服务器公钥证书

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

在这里插入图片描述

9. 服务端证书生成完毕

10分钟给Nginx加上HTTPS【自签名方案】!_第6张图片

第二步:配置证书到Nginx

1. 将ssl整个文件夹,拷贝到nginx目录中,conf下

10分钟给Nginx加上HTTPS【自签名方案】!_第7张图片

2. 配置Nginx中conf下nginx.conf文件

  • 主要放开443 的server
   server {
        listen       443  ssl;
        server_name  localhost;

        ssl_certificate      ssl/server.crt;
        ssl_certificate_key  ssl/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

3. 配置成功,打开https

10分钟给Nginx加上HTTPS【自签名方案】!_第8张图片

4. 相关端口跳转配置

  • 配置 HTTP 和 HTTPS 共存
server {
        listen       80 default backlog=2048;
        listen       443 ssl;
        server_name  xxxx.com;

        ssl_certificate      ssl/server.pem;
        ssl_certificate_key  ssl/server.key;
       location / {
            root   html;
            index  index.html index.htm index.php;

        }
     }
  • HTTP 80端口自动跳转HTTPS 443端口
    Nginx配置 rewrite 重写地址
 location / {
            root   html;
            index  index.html index.htm;
            rewrite ^ https://$http_host$request_uri? permanent;    
        }

5. 关于站点显示不安全

10分钟给Nginx加上HTTPS【自签名方案】!_第9张图片

  • 双击crt文件,安装到本地
    10分钟给Nginx加上HTTPS【自签名方案】!_第10张图片

10分钟给Nginx加上HTTPS【自签名方案】!_第11张图片
再次连接显示:
10分钟给Nginx加上HTTPS【自签名方案】!_第12张图片

参考资料 & 致谢

【1】Nginx下载官网
【2】openssl 、nginx生成配置自签名证书
【3】SSL–Windows下生成OpenSSL自签证书
【4】nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/
【5】nginx证书填写路径报错:library:fopen:Unknown error:fopen
【6】Nginx下配置SSL模块,支持https
【7】[/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127

你可能感兴趣的:(Install,/,Deploy,/,Release)