准备工作:
系统环境: win10
需要软件: OpenSSL, Nginx for windows
一、安装OpenSSL
下载地址:
http://slproweb.com/products/Win32OpenSSL.html
(请根据你的系统来选择是使用 32位系统 or 64位系统)
下载完成后, 可以把程序安装在: C:\OpenSSL-Win64 (这里你可以调整, 如果调整一下也要跟着调整即可.)
配置环境变量
变量名:OPENSSL_HOME
变量值:C:\OpenSSL-Win64
并在Path变量结尾添加一条: %OPENSSL_HOME%\bin
OpenSSL配置完毕.
二、安装Nginx
下载Nginx
请到: Nginx官网下载Nginx,
我是传送带点我去.
我这里下载的是: nginx/Windows-1.12.1 这个版本。
安装Nginx
这里的版本都是绿色的版本, 把下载下来的压缩包解压. 直接拷贝到系统的目录中,
并Nginx放在目录: c:\Nginx
启动Nginx
如果不做其他的配置, 可以直接进入c:\Nginx 找到nginx.exe.
双击运行nginx.exe 就可以启用服务器了.
访问Nginx
默认的情况下, 访问http://localhot 就可以看到Nginx的默认页了.
Nginx配置完成.
三、生成证书
小前提
在c:\Nginx目录中, 创建 ssl 文件夹, 用于接下里创建的证书.
打开控制台执行命令:
cd C:\Nginx\ssl
1. 创建私钥
进入到C:\Nginx\ssl 目录后, 在命令行中执行命令:
openssl genrsa -des3 -out cert.key 1024
# cert文件名是自己随便起即可
输入密码后,再次重复输入确认密码。记住此密码,后面会用到。
3. 创建csr证书
继续在命令行中执行命令:
openssl req -new -key cert.key -out cert.csr
#其中cert.key文件为刚才生成的文件
执行上述命令后,需要输入一系列的信息。输入的信息中最重要的为Common Name,这里输入的域名即为我们要使用https访问的域名 ,比如我输入的是localhost。其它的内容随便填即可。
以上步骤完成后,ssl文件夹内出现两个文件:cert.csr 和 cert.key
4. 去除密码。
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码。
复制cert.key并重命名为cert.key.org 接下来准备使用.
在命令行中执行如下命令以去除口令:
openssl rsa -in cert.key.org -out cert.key
然后输入密码,这个密码就是上文中在创建私钥的时候输入的密码。
5. 生成crt证书
在命令行中执行此命令:
openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.crt
到现在, 证书生成完毕。
在ssl目录中, 一共生成4个文件.
cert.crt
cert.csr
cert.key
cert.key.org
下面在配置https服务器的时候,我们需要用到的是其中的cert.crt和cert.key这两个文件。
四、修改Nginx的nginx.conf配置文件
进入到 C:\Nginx\conf 目录下.
(不要使用自带的记事本), 然后找一个记事本打开 nginx.conf 文件
找到HTTPS server配置的那一段(即包含有listen 443 ssl配置那一段)。
我们发现这段代码被注释掉了. 我们把该段代码前面的#号注释去掉。
然后分别修改其中的ssl_certificate和ssl_certificate_key配置项为刚才所生成的 cert.crt 和 cert.key 这两个文件的路径.
并配置server_name为localhost。
修改后的该段配置如下:
server {
listen 443 ssl;
server_name localhost;
ssl_certificate C:\Nginx\ssl\cert.crt; # 这个是证书的crt文件所在目录
ssl_certificate_key C:\Nginx\ssl\cert.key; # 这个是证书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的常用操作
在继续后面的内容之前,先简单介绍下Windows命令行中操作Nginx的几个常用的语句:
start nginx # 启动Nginx
nginx.exe -s stop # 快速停止Nginx,可能并不保存相关信息
nginx.exe -s quit # 完整有序的停止Nginx,并保存相关信息
nginx.exe -s reload # 重新载入Nginx,当配置信息修改,需要重新载入这些配置时使用此命令。
nginx.exe -s reopen # 重新打开日志文件
nginx -v # 查看Nginx版本
因为修改了配置文件,所以需要退出控制台,并重新打开一个控制台。执行如下命令:
cd c:\nginx
nginx.exe -s quit
start nginx
即退出Nginx,然后再重新启动它。这时候,在浏览器访问 https://localhost 就可以看到默认的访问页面了.
需要注意的是:
你可能在浏览器上看到“您的连接不是私密连接”的提示,单击页面中的“高级”,并接着单击“继续前往xxxxx(不安全)”,就可以看到Nginx的欢迎界面了。
说明https服务器已经配置成功了。