目录
- 一、下载安装OpenSSL
- 二、证书生成
- 三、修改nginx配置
- 总结
Nginx 是一个高性能的HTTP和反向代理web服务器,在进行web项目开发时,大多都是使用nginx对外提供web服务。HTTPS (全称:Hypertext Transfer Protocol Secure [5]),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。在nginx中配置https能够为我们提供更为安全的web服务,下面便是nginx中配置https的具体实现步骤:
一、下载安装OpenSSL
-
下载OpenSSL
访问 https://slproweb.com/products/Win32OpenSSL.html 选择合适版本下载
-
安装OpenSSL
下载完毕后根据提示进行安装。
-
配置OpenSSL环境变量
安装完成后,添加环境变量
OPENSSL_HOME
,变量值为openssl的安装目录,并在Path中新建环境变量%OPENSSL_HOME%\bin
-
验证是否安装成功
打开cmd,输入命令:
openssl -version
,出现以下提示,即安装成功。
二、证书生成
-
创建私钥
在cmd中使用以下命令创建私钥文件,取名为
local-private.key
并保存在指定目录下。openssl genpkey -algorithm RSA -out D:/local-private.key -pkeyopt rsa_keygen_bits:2048
参数解释:
参数 含义 作用 -algorithm RSA 指定密钥算法 使用 RSA 非对称加密算法(目前最广泛的标准) -out D:/local-private.key 输出文件路径 生成的私钥将保存到 D:/local-private.key
(Windows路径)-pkeyopt rsa_keygen_bits:2048 密钥位长选项 指定生成的 RSA 密钥长度为2048位(安全标准值) -
生成签名
在cmd中使用以下命令生成名为
local-csr.csr
的签名文件并保存在指定目录下。openssl req -new -key D:/local-private.key -out D:/local-csr.csr
参数解析:
参数 含义 作用 -key D:/local-private.key 私钥文件路径 使用指定的 RSA 私钥生成 CSR(必需) -out D:/local-csr.csr 输出文件路径 生成的 CSR 文件保存位置 运行以上命令,会提示输入一些证书信息,如:国家、省份、城市、组织、单位等,只需根据提示输入即可。
-
生成证书
在cmd中使用以下命令生成有效期一年,名为
local-cert.crt
的证书文件并保存在指定目录下。openssl req -x509 -key D:/local-private.key -in D:/local-csr.csr -out D:/local-cert.crt -days 365
参数解释:
参数 含义 作用 -x509 生成X509证书 指定生成标准 X.509 格式的证书 -key D:/local-private.key 私钥文件路径 用于签名的私钥(必须与生成 CSR 的私钥匹配) -in D:/local-csr.csr 输入的CSR文件 之前生成的证书签名请求 -out D:/local-cert.crt 输出证书路径 最终生成的自签名证书文件 -days 365 有效期 证书的有效时长(365天)
三、修改nginx配置
找到nginx的配置文件nginx.conf
,参考下面的配置进行修改
#user root;
worker_processes 1;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;server {listen 80;server_name localhost localhost;return 301 https://$host$request_uri;}server {listen 443 ssl;server_name localhost;ssl_certificate D:/local-cert.crt;ssl_certificate_key D:/local-private.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;}}
}
修改完毕后,保存配置文件,并重新启动nginx,在浏览器地址栏中输入https://localhost进行访问,效果如下:
总结
本文简单的介绍了在Windows系统下,nginx配置https的步骤,使用OpenSSL生成了证书,并在nginx配置文件nginx.conf中指定证书路径,将80端口重定向为https访问路劲。
相信按照以上步骤,都能够很好的视实现nginx配置https。