windows 上配置 nginx 转发 https
1.需求分析
工作环境中,使用云桌面(win10)进行开发,云桌面的环境有些拉跨,现在将部分能在本地电脑上完成的作业,进行转移,现在对 WebSphere 的使用,移植到本地电脑中进行,这时就需要在云桌面中安装 ngixn 软件,修改相关配置。
2.前提条件
在本地电脑登录 WebSphere 是不可以的,在云桌面中登录 WebSphere 是可以的,而且 WebSphere 的网址是使用 https 协议。使得在本地电脑中输入网址时,网络走向是先通过 nginx 代理再转发到 WebSphere 所部署的服务上。
3.生成证书
3.1.软件
- 首先根据云桌面系统版本下载 OpenSSL 软件,用于在云桌面中生成 ssl 证书。
- 安装完软件后,配置环境变量
3.2.申请证书
- 在云桌面中创建一个文件夹,用于存储证书,在该文件夹中用管理员权限打开 cmd 或者
Windows PowerShell - 首先创建私钥
PS C:\ssl> openssl genrsa -des3 -out nginx.key 1024
openssl genrsa : 用来生成 RSA 私有密钥,公有密钥提取自私有密钥 -des3 : 使用 DES 对生成的私有密钥进行加密 -out nginx.key : 将生成的密钥指定到文件中 1024 : 密钥的长度,秘钥长度越长越安全,但解密加密所耗费的时间也会越长 Enter PEM pass phrase: 和 Verifying - Enter PEM pass phrase: 这是在给私钥设置密码并确认密码。
- 根据私钥提取公钥
PS C:\ssl> cp .\nginx.key .\nginx.key.org
PS C:\ssl> openssl rsa -in nginx.key.org -out nginx.key
openssl rsa : 从私钥中提取公钥 -in nginx.key.org : 指定输入的密钥文件 -out nginx.key : 指定提取生成公钥的文件 Enter pass phrase for nginx.key.org: 输入密码后,命令显示 writing RSA key 表示提取成功。
- 创建csr文件
PS C:\ssl> openssl req -new -key nginx.key -out nginx.csr
openssl req -new : 生成证书请求文件 -key nginx.key : 指定已有的秘钥用于生成秘钥请求,"-key"只与生成证书请求"-new"选项配合使用 -out nginx.csr : 指定生成的证书请求名称 上述命令回车后,要填写如下的信息: Country Name (2 letter code) [XX]: CN State or Province Name (full name) []: 省份拼音,比如 SiChuan Locality Name (eg, city) [Default City]: 地市拼音,比如 ChengDu Organization Name (eg, company) [Default Company Ltd]: 公司名称拼音,比如 BaiDu Organizational Unit Name (eg, section) []: 你所在公司的部门拼音,比如 YanFa Common Name (eg, your name or your server's hostname) []: 域名或者ip,比如 192.168.5.200 Email Address []: 邮箱地址 其中最重要的是 Common Name 信息,填写的是云桌面的 IP4 地址。
- 创建crt证书
PS C:\ssl> openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt
openssl x509 : 生成自签名证书 -req : 输入是一个证书请求 -days 365 : 设置证书的有效期时间,默认30天 -in nginx.csr : 指定证书输入文件,若同时指定了"-req"选项,则表示输入文件为证书请求文件;自签证书的输入文件"-in file"的file可以是证书请求文件,也可以是已签署过的证书。 -signkey nginx.key : 该选项用于提供自签证书时的密钥文件 -out nginx.crt : 指定输出文件 完成上述步骤之后,存放证书的文件夹中存在4个文件:
4.修改配置
在保证 nginx 安装正确的情况下,修改 nginx.conf 文件的对应位置,取消 ssl 的注释。 listen : nginx 监听的端口 server_name : 浏览器中要输入域名IP ssl_certificate : 证书的存放路径 ssl_certificate_key : 密钥的存放路径 proxy_pass : 服务器端IP及部署的项目访问端口 修改对应的配置,重启 nginx。
|