如何配置windows 10系统下的本地HTTPs开发环境
如何配置windows 10系统下的本地HTTPs开发环境
参考:https://zeropointdevelopment.com/how-to-get-https-working-in-windows-10-localhost-dev-environment/
自己创建证书颁发机构(CA),为自己的本地开发环境颁发证书,并使HTTPS在Windows 10中工作。
我从事很多电子商务和会员项目,在我的Windows 10本地机上开发,我需要测试网站的安全区域,如结账、付款表格和注册。
这些类型的表单都要求数据由使用HTTPS的SSL证书加密。
但是如何让HTTPS在Windows 10中工作呢?过程是什么?
这是我在Windows上颁发证书的分步指南,以便您可以在HTTPS中运行本地开发站点。
Install OpenSSL
您首先需要的是OpenSSL的可执行文件。
可执行文件未在Windows安装文件中分发,因此您必须手动查找并安装它。
有一些有用的资源可从中获取文件:
Option 1 – Shining Light Productions
访问https://slproweb.com/products/Win32OpenSSL.html并下载“Win64 OpenSSL v1.1.1g”文件并运行安装程序。
确保为OpenSSL选择的安装文件夹的“\bin\”文件夹已添加到系统路径环境变量中,因此可以从任何地方使用。
Option 2 – Git for Windows
OpenSSL可执行文件随Git for Windows一起分发。
安装后,您将在“\Git\mingw64\bin”中找到openssl.exe文件,如果尚未安装,则可以将其添加到系统路径环境变量中。
在Windows 10中成为自己的证书颁发机构的三个步骤
在这些步骤中,您将创建一个根SSL证书,可以根据需要使用该证书对多个本地开发站点进行签名。
你只需要做第一部分一次。将根SSL添加到Windows 10后,可以跳过为所有新本地域颁发证书。
Step 1 – Create a Private Key
我们将创建一个名为rootSSL.key的私钥,用于颁发新的站点证书。 我使用Nginx web服务器,所以我在Nginx windows文件夹中创建了一个名为“SSL”的文件夹,这就是我要创建这个根**的地方。在管理员模式下打开命令提示符,并导航到nginx安装文件夹中新创建的SSL文件夹。
我的 Openssl.exe 安装在 C:\Program Files\OpenSSL-Win64\bin 运行Openssl.exe
键入以下命令并输入私钥的密码。私钥的密码为:123456,输入的时候是看不到的。
genrsa -des3 -out rootSSL.key 2048
在当前目录下生成一个**文件:rootSSL.key
Step 2 – Create the Certificate File
在这一步中,我们将使用上一步中创建的私钥创建一个名为rootSSL.pem的证书文件。注意:您可以选择创建一个持续X天的证书文件。在本例中,我们将选择1024天,但您可以选择任何数量-越长越好。
键入以下命令:
req -x509 -new -nodes -key rootSSL.key -sha256 -days 1024 -out rootSSL.pem
输入在步骤1中创建的根SSL**的密码。
- 两个字母的国家代码:我用“CN”表示中国。
- 你的州或省:我用“guangdong”代表广东省。
- 你的城市:我用“shenzhen”代表深圳市。
- 一个组织名称:我使用“szhn”代表神州海纳。
- 一个组织单位的名字:我用“A3650”代表神州海纳的单位。
- 一个公共名称,如服务器名或完全限定的域名(FQDN):我使用“a3650.com”。
- 管理员电子邮件地址:我使用“aaa@qq.com”。
您不必把合法信息放在这里,因为我们只在本地开发环境中运行SSL证书,只是希望正确地执行它。
Step 3 – Get Windows to Trust the Certificate Authority (CA)
我们将使用Microsoft管理控制台(MMC)来信任根SSL证书。
Step 1 – Press the Windows key + R
Step 2 – 输入 “MMC” 单击 “确认”
Step 3 – 选择菜单 “文件 > 增加/删除管理单元(M)”
Step 4 – 选择 “证书” 并 “添加”
Step 5 – 选择 “计算机账户(C)” 并 “下一步”
Step 6 – 选择 “本地计算机(运行此控制台的计算机)” 并 “完成”
Step 7 – 单击 “确定”返回到 MMC 界面
Step 8 – 双击 “证书 (本地计算)” 展开列表
Step 9 – 选择 “第三方根证书颁发机构”, 右击 “证书” 并选择 “所有任务” 中的 “导入”
Step 10 – 单击 “下一步” 并浏览选择 “rootSSL.pem” 文件,在前面 Step 2创建的根证书文件
Step 11 – 选择 “将所有的证书都放入下列存储” 并选择 “第三方根证书颁发机构”. 单击 “下一步” 直到完成向导。
浏览证书以在列表中查看您的证书。
现在您可以开始为所有本地域颁发SSL证书。
为本地域颁发证书
创建本地域站点
我不打算讨论在Nginx或任何你使用的web服务器上建立实际的站点。
第一步是创建一个本地域。
您可以在C:\Windows\System32\drivers\etc\hosts文件中执行此操作。
下面是一个hosts文件的示例。
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 sslTest.local
你可以看到我添加了一个“sslTest.local”域来指向我的本地IP地址127.0.0.1
所以“sslTest.local”是新的网站地址,我想在本地计算机上使用“https://sslTest.local”连接到它。
让我们为这个新的本地域颁发证书。
为新域创建私钥 (Create a Private Key for the New Domain)
我们将创建一个名为“sslTest.local.key”的文件,其中包含该域的私钥信息。
在同一个管理员命令窗口中,键入以下命令:
req -new -sha256 -nodes -out client-1.local.csr -newkey rsa:2048 -keyout sslTest.local.key -subj "/C=CN/ST=guangdong/L=shenzhen/O=A3650/OU=a3650.com/CN=sslTest/aaa@qq.com"
为自己的本地域颁发证书时,请用本地服务器域名替换“sslTest.local”。
您还可以更改“-subj”参数以反映您的国家、省、位置等。
使用根SSL证书颁发新证书
在同一个管理员命令窗口中,键入以下命令:
x509 -req -in client-1.local.csr -CA rootSSL.pem -CAkey rootSSL.key -CAcreateserial -out sslTest.local.crt -days 500 -sha256 -extensions "authorityKeyIdentifier=keyid,issuer\n basicConstraints=CA:FALSE\n keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment\n subjectAltName=DNS:sslTest.local"
提示时输入根SSL证书的密码。
您可以看到我们创建的所有文件;“sslTest.local.crt”和“sslTest.local.key”是您将需要添加到本地开发站点的web服务器配置中的文件。
在Web服务器中使用新的本地域证书
此过程的最后一部分是将证书文件添加到sslTest.local的web服务器网站配置中。
下面是在nginx服务器块中使用**的示例。
找到nginx.conf文件,并在定义本地开发站点的服务器块中添加以下行:
重新启动nginx服务器以加载新配置,并在您喜爱的浏览器*问https://sslTest.local。
结论
让HTTPS在Windows 10中工作的过程有点烦琐我同意,但是,在我看来,能够使用自己的SSL证书在HTTPS上安全地运行本地开发站点是值得的。
如果你使用的是WordPress,你现在可以强制网站使用HTTPS来提高安全性。