Windows 10 搭建自己的HTTPS环境

成为您自己的证书颁发机构(CA),并为您的本地开发环境颁发证书,并使HTTPS在Windows 10中正常工作。

我在Windows 10本地计算机上开发了许多电子商务和会员项目,需要测试网站的安全区域,例如结帐,付款表格和注册。

这些类型的表格均要求使用HTTPS通过SSL证书对数据进行加密。

但是,如何在Windows 10中使HTTPS正常运行呢?程序是什么?

这是我在Windows上颁发证书的分步指南,以便您可以在HTTPS中运行本地开发站点。

安装OpenSSL
您首先需要的是OpenSSL的可执行文件。

该可执行文件未分发到Windows安装文件中,因此您必须手动查找并安装它。

有几个有用的资源可以从以下位置获取文件:

选项1 –闪亮的灯光作品
访问https://slproweb.com/products/Win32OpenSSL.html并下载“ Win64 OpenSSL v1.1.0j”文件并运行安装程序。

确保为OpenSSL选择的安装文件夹的“ \ bin \”文件夹已添加到系统PATH环境变量中,以便可以在任何地方使用它。

选项2 – Windows版Git
OpenSSL可执行文件随Git for Windows一起分发。

安装完成后,您将在“ \ Git \ mingw64 \ bin”中找到openssl.exe文件,如果尚未完成,则可以将其添加到系统PATH环境变量中。

成为Windows 10中自己的证书颁发机构的三个步骤
在这些步骤中,您将创建一个根SSL证书,您可以根据需要使用它来对尽可能多的本地开发站点进行签名。

您只需要做一次第一部分。

将根SSL添加到Windows 10后,您可以跳到为所有新的本地域颁发证书。

第1步-创建私钥
我们将创建一个名为rootSSL.key的私钥,该私钥将用于颁发新的站点证书。

我使用Nginx Web服务器,因此我在Nginx Windows文件夹中创建了一个名为“ SSL”的文件夹,这就是我要创建此根密钥的地方。

在管理员模式下打开命令提示符,然后导航到nginx安装文件夹中的新创建的SSL文件夹。

输入以下命令,然后输入私钥的密码。

openssl genrsa -des3 -out rootSSL.key 2048


证书颁发机构步骤1
步骤2 –创建证书文件

在此步骤中,我们将根据在上一步中创建的私钥创建一个名为rootSSL.pem的证书文件。

注意:您可以选择创建一个持续X天数的证书文件。在此示例中,我们将选择1024天,但是您可以选择任意数量-越长越好。

输入以下命令:

openssl req -x509 -new -nodes -key rootSSL.key -sha256 -days 1024 -out rootSSL.pem


输入我们在步骤1中创建的根SSL密钥的密码。

然后,输入要插入SSL证书的信息:

两个字母的国家/地区代码:我在澳大利亚使用“ AU”。
您所在的州或省:我在新南威尔士州使用“ NSW”。
您的城市:我使用“悉尼”。
组织名称:我使用“零点开发”。
组织单位名称:我使用“开发”。
通用名称,例如服务器名称或完全限定的。域名(FQDN):我使用“ zeropointdevelopment.com”。
管理员电子邮件地址:我使用“ hello@zeropointdevelopment.com”。
证书颁发机构步骤2
您不必在这里输入合法信息,因为我们仅在本地开发环境上运行SSL证书,但是我喜欢正确地做到这一点。

步骤3 –让Windows信任证书颁发机构(CA)
我们将使用Microsoft管理控制台(MMC)信任根SSL证书。

步骤1 –按Windows键+ R
步骤2 –输入“ MMC”,然后单击“确定”
运行MMC
步骤3 –转到“文件>添加/删除管理单元”
添加删除管理单元
步骤4 –单击“证书”和“添加”
证书添加
步骤5 –选择“计算机帐户”,然后单击“下一步”
电脑帐号
步骤6 –选择“本地计算机”,然后单击“完成”
本地计算机然后完成
步骤7 –单击“确定”返回到MMC窗口

步骤8 –双击“证书(本地计算机)”以展开视图
MMC展开
步骤9 –选择“受信任的根证书颁发机构”,右键单击“证书”,然后选择“所有任务”,然后选择“导入”
受信任的根CA
步骤10 –单击“下一步”,然后浏览并找到我们在步骤2中创建的“ rootSSL.pem”文件
文件导入向导
导入向导查找文件
步骤11 –选择“将所有证书放置在以下存储中”,然后选择“受信任的根证书颁发机构存储”。单击“下一步”,然后单击“完成”以完成向导。

证书存储
浏览证书以在列表中查看您的证书。

现在,您可以开始为所有本地域颁发SSL证书。

颁发本地域证书
创建本地域站点

我不会在Nginx或您使用的任何Web服务器中设置实际站点。

第一步将是创建本地域。

您可以在c:\ program files \ windows \ system32 \ drivers \ etc \ 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 client-1.local
您可以看到我添加了一个“ client-1.local”域来指向我的本地IP地址127.0.0.1

因此,“ client-1.local”是新的网站地址,我想在本地计算机上使用“ https://client-1.local”连接到该地址。

让我们为这个新的本地域颁发证书。

为新域创建私钥
我们将创建一个名为“ client-1.local.key”的文件,其中包含该域的私钥信息。

在同一管理员命令窗口中,键入以下内容:

openssl req -new -sha256 -nodes -out client-1.local.csr -newkey rsa:2048 -keyout client-1.local.key -subj "/C=AU/ST=NSW/L=Sydney/O=Client One/OU=Dev/CN=client-1.local/emailAddress=hello@client-1.local"

生成本地域的私钥
当您为自己的本地域颁发证书时,请用本地服务器域名替换“ client-1.local”。

您还可以更改“ -subj”参数以反映您的国家/地区,州/地区等。

使用根SSL证书颁发新证书
在同一管理员命令窗口中,键入以下内容:

openssl x509 -req -in client-1.local.csr -CA rootSSL.pem -CAkey rootSSL.key -CAcreateserial -out client-1.local.crt -days 500 -sha256 -extensions "authorityKeyIdentifier=keyid,issuer\n basicConstraints=CA:FALSE\n keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment\n  subjectAltName=DNS:client-1.local"

 
当您为自己的本地域颁发证书时,请用本地服务器域名替换“ client-1.local”。

出现提示时,输入根SSL证书的密码。

最后一步-颁发证书
您可以看到我们创建的所有文件。“ client-1.local.crt”和“ client-1.local.key”是您需要添加到本地开发站点的Web服务器配置中的文件。

在您的Web服务器中使用新的本地域证书
此过程的最后一部分是将证书文件添加到Web服务器的client-1.local的网站配置中。

Nginx 
这是在nginx服务器块中使用密钥的示例。

找到您的nginx.conf文件,并在定义本地开发站点的服务器块内,添加如下所示的新行:

server {
     listen       80;
     server_name  client-1.local;
     # New Lines below
     listen 443 ssl;
     ssl on; 
     ssl_certificate f:/LDE/nginx/SSL/client-1.local.crt;
     ssl_certificate_key f:/LDE/nginx/SSL/client-1.local.key;

 


Apache
如果使用单个实例,请找到Apache httpd.cof或apache24.conf配置文件。

典型的Windows安装将在c:\ program files \ apache24 \ conf中

如果您正在开发客户端站点,则更有可能为每个客户端设置虚拟服务器。

在这种情况下,请在apache安装路径中查找您的httpd-vhosts.conf配置文件。

在VirtualHost块内,在ServerName参数下直接对SSL行进行关联。

<VirtualHost client-1.local>
     DocumentRoot f:/projects/client-1/www/
     ServerName client-1.local
     SSLEngine on
     SSLCertificateFile f:/LDE/nginx/SSL/client-1.local.crt
     SSLCertificateKeyFile f:/LDE/nginx/SSL/client-1.local.key;    
</VirtualHost>


重新启动Web服务器
重新启动Windows Web服务器服务以加载新配置,并在您喜欢的浏览器上访问https://client1.local。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值