nginx下载:http://nginx.org/en/download.html
实现Https首先需要向管理机构申请证书,而我们此次由于是练习目的,所以通过Openssl自己生成证书。首先我们需要用到生成证书的Openssl软件。
一. 安装Openssl
下载地址:http://slproweb.com/products/Win32OpenSSL.html (根据系统选择32位或者64位版本下载安装)。
二、生成密钥
安装完成Openssl后运行OpenSSL\bin下的openssl.exe文件执行下列命令(管理员身份):
1.创建私钥
genrsa -des3 -out xxx.key 1024
(xxx名字自定义)
创建过程中会让你输入密码。输入后,再次重复输入确认密码。记住此密码,后面会用到。
2. 创建csr证书
req -new -key xxx.key -out xxx.csr (key文件为刚才生成的文件)
填写必要信息后可以一路回车,可以不填
以上步骤完成后,ssl文件夹内出现两个文件:
xxx.csr、xxx.key
3.去除密码。
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码。
复制xxx.key并重命名为xxx.key.org
去除口令,在命令行中执行此命令:
rsa -in xxx.key.org -out xxx.key (xxx为自定义文件名)
此命令需要输入刚才设置的密码。
这里有个错误,退出重新启动openssl可以解决。
problem creating object tsa_policy1=1.2.3.4.1
11840:error:08064066:object identifier routines:OBJ_create:oid exists:crypto\objects\obj_dat.c:698:
4. 生成crt证书
x509 -req -days 365 -in xxx.csr -signkey xxx.key -out xxx.crt
执行以上步骤,总共会生成四个文件。

5.拷贝密钥证书到nginx
nginx下新建文件夹ssl,拷贝xxx.crt xxx.key到ssl下
6.配置nginx.conf文件
找到nginx-1.13.5/conf下的nginx.conf文件编辑:
server {
server_name xxx.xxx.com;
listen 80;
listen 443 ssl;
ssl_certificate C:/nginx-1.16.1/ssl/server.crt;
ssl_certificate_key C:/nginx-1.16.1/ssl/server.key;
proxy_set_header X-Forwarded-Proto $scheme;
location / {
proxy_set_header host $host;
proxy_pass http://127.0.0.1:8080/;
}
}
proxy_pass为请求转发到的ip和端口号
7.启动nginx:

双击nginx即可。cmd可能会闪一下,实际在进程中看已经启动了
参考:
https://www.jianshu.com/p/5aa5bc7d119c
https://www.cnblogs.com/vincent-li666/p/5851463.html
https://www.jianshu.com/p/6997d5dd8258
网友评论