Windows中Nginx使用OpenSSL自签名证书配置Https
  19qMgiCiiRfc 2023年11月02日 53 0

一、OpenSSL生成自签名证书

OpenSSL的安装我们参考上一篇文章。https://blog.51cto.com/u_13312531/7077952

使用OpenSSL生成自签名证书的步骤:

创建私钥Key(.key文件);

创建签名请求(.csr文件);

将Key中的密码去掉;

用Key签名证书(.key+.csr=>.crt)

为HTTPS准备的证书需要注意,创建的签名请求的CN必须与域名完全一致,否则无法通过浏览器验证。

1.生成服务器私钥(.key 文件)

输入以下命令生成服务器私钥

openssl genrsa -des3 -out server.pass.key 2048

随后输入一个4位以上的密码,然后再输入一次密码。如图:


Windows中Nginx使用OpenSSL自签名证书配置Https_Nginx

命令解释如下:

genra:生成RSA私钥

-des3:使用des3算法

-out :指定生成文件名

2048:私钥长度设置为2048

2.去除私钥中的密码

输入以下命令去除私钥中的密码

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

Windows中Nginx使用OpenSSL自签名证书配置Https_Nginx_02

3.生成证书签名请求(.csr文件)

输入以下命令生成证书签名请求:

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=OrganizeName/OU=UnitName/CN=192.168.1.58"

Windows中Nginx使用OpenSSL自签名证书配置Https_OpenSSL_03

参数介绍:

req:生成证书签名请求

-new:新生成

-key:私钥文件

-out:指定生成的CSR文件名

-subj:生成CSR证书的参数

subj参数说明如下:

字段 全称 举例

/C= Country 国家 CN

/ST= State or Province 州/省 Zhejiang

/L= Location or City 城市 Hangzhou

/O= Organization 组织/企业 OrganizeName

/OU= Organization Unit 部门 UnitName

/CN= Common Name 域名or IP www.yourdomain.com 或者 192.168.x.x

4.生成自签名SSL证书(.crt文件)

输入以下命令生成自签名SSL证书

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

参数介绍:

-days:证书有效期

-req:需要证书

-in:输入csr文件

-signkey:指定 .key 文件

-out:输出crt文件

文件夹总共有4个文件,server.pass.key 、server.key、server.csr、server.crt。

其中配置nginx的话需要server.key和server.crt两个文件。

至此,证书生成完成。

Windows中Nginx使用OpenSSL自签名证书配置Https_OpenSSL_04

二、配置Nginx

1.先安装我们的证书。

Windows中Nginx使用OpenSSL自签名证书配置Https_OpenSSL_05

Windows中Nginx使用OpenSSL自签名证书配置Https_OpenSSL_06

Windows中Nginx使用OpenSSL自签名证书配置Https_Nginx_07

Web服务器需要把server.crt发给浏览器验证,然后用server.key解密浏览器发送的数据。(剩下两个文件server.pass.key 和 server.csr已经不需要了)。

2.服务端配置443端口并使用SSL证书

我们需要在nginx目录下的nginx.conf进行https的配置

Windows中Nginx使用OpenSSL自签名证书配置Https_Nginx_08

我们可以在这个文件中添加对应的https配置。

	server {
    		#监听443端口
    		listen       443 ssl;
    		server_name  127.0.0.1;
    		#ssl证书的crt文件路径
    		ssl_certificate     D:\\soft\\nginx-1.24.0\\ssl\\server.crt;
    		#ssl证书的key文件路径
    		ssl_certificate_key D:\\soft\\nginx-1.24.0\\ssl\\server.key;
    		#反向代理
    		location / {
    			root   html;
    			index  index.html index.htm;
    			proxy_pass  http://127.0.0.1:80;
    			}
    	}

修改好之后,我们执行nginx -s reload重新启动nginx。

Windows中Nginx使用OpenSSL自签名证书配置Https_Https_09

最后我们在浏览器中进行访问。一开始会出现浏览器安全的提示,我们在高级那里设置继续访问就可以了。

Windows中Nginx使用OpenSSL自签名证书配置Https_OpenSSL_10

Windows中Nginx使用OpenSSL自签名证书配置Https_OpenSSL_11

我们的自签名证书要被浏览器信任的话有以下两种处理方式:

方式一:强制浏览器和操作系统接受我们自己的证书颁发机构

一种做法是:点击【高级】->【继续前往192.168.x.x(不安全)】。您可以强制浏览器和操作系统接受我们自己的证书颁发机构。因此,一旦安装 CA 证书并将其添加到受信任列表中,您将不会看到安全警告。


方式二:在您的浏览器/操作系统中安装证书授权

另一种做法:您还可以与您的开发团队共享 CA 证书,以便在他们的浏览器中安装。通过浏览器把证书导入并设置为“受信任”,以后该电脑访问网站就可以安全地连接Web服务器了。

Windows中Nginx使用OpenSSL自签名证书配置Https_Https_12

在安全选项下面选择管理设备管理。

Windows中Nginx使用OpenSSL自签名证书配置Https_Nginx_13

Windows中Nginx使用OpenSSL自签名证书配置Https_Https_14

导入我们的证书。

Windows中Nginx使用OpenSSL自签名证书配置Https_Nginx_15

Windows中Nginx使用OpenSSL自签名证书配置Https_签名证书_16

最后我们使用https访问到了我们的页面。

Windows中Nginx使用OpenSSL自签名证书配置Https_Https_17

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  zEbHO6cVnp49   2023年11月02日   46   0   0 vimNginx
  y5zqVixaDLkE   2023年11月02日   45   0   0 tenginNginx
19qMgiCiiRfc