准备工作:
系统环境: 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服务器已经配置成功了。
发表评论
沙发空缺中,还不快抢~