如何为开发域名创build一个自签名证书?
我有用于开发目的的subdomain.example.com
。 我的Web应用程序解决scheme包含一个Web API等,我需要从外部系统调用,因此我不使用本地主机。
我现在需要testingSSL,并需要为我的subdomain.example.com
开发域名证书。
我曾尝试创build一个自签名证书,如http://technet.microsoft.com/en-us/library/cc753127(v=ws.10).aspx中所述 ,但此证书仅适用于本地主机。 这个证书可以用于我的目的,还是必须为我的开发子域创build一个自签名? 如果我必须为我的开发子域创build一个自签名证书,那么可以使用什么实用程序或在线服务(免费)?
我join这个信息是因为接受的答案似乎没有完全解决这个问题,或者至less没有为我解决问题。
使用IIS的自签名证书function,您不能设置证书的公用名称(CN),因此不能创build绑定到您select的子域的证书。
解决此问题的一个方法是使用与.Net 2.0 SDK捆绑在一起的makecert.exe。 在我的服务器上是:
C:\Program Files\Microsoft.Net\SDK\v2.0 64bit\Bin\makecert.exe
您可以创build一个签名权限并将其存储在LocalMachine证书库中(这些命令必须从pipe理员帐户或在提升的命令提示符下运行):
makecert.exe -n "CN=My Company Development Root CA,O=My Company, OU=Development,L=Wallkill,S=NY,C=US" -pe -ss Root -sr LocalMachine -sky exchange -m 120 -a sha1 -len 2048 -r
然后,您可以创build绑定到您的子域的证书,并由您的新权限签名:
(请注意,-in参数的值必须与用于生成上述权限的CN值相同。)
makecert.exe -n "CN=subdomain.example.com" -pe -ss My -sr LocalMachine -sky exchange -m 120 -in "My Company Development Root CA" -is Root -ir LocalMachine -a sha1 -eku 1.3.6.1.5.5.7.3.1
您的证书应该出现在IISpipe理器中,如Tom Hall的post中所述,绑定到您的站点。
Mike O'Brien在http://www.mikeobrien.net/blog/creating-self-signed-wildcard上的优秀博客文章,;
使用PowerShell
从Windows 8.1和Windows Server 2012 R2(Windows PowerShell 4.0)及更高版本开始,您可以使用新的New-SelfSignedCertificate
cmdlet创build自签名证书:
例子:
New-SelfSignedCertificate -DnsName www.mydomain.com -CertStoreLocation cert:\LocalMachine\My New-SelfSignedCertificate -DnsName subdomain.mydomain.com -CertStoreLocation cert:\LocalMachine\My New-SelfSignedCertificate -DnsName *.mydomain.com -CertStoreLocation cert:\LocalMachine\My
使用IISpipe理器
- 启动IISpipe理器
- 在服务器级别的IIS下,select服务器证书
- 在操作下的右侧select创build自签名证书
- 在说明“为证书指定一个友好名称”的地方input适当的名称作为参考。
- 例如:
www.domain.com
或subdomain.domain.com
- 例如:
- 然后,从左侧的列表中select您的网站
- 在“操作”下的右侧select“绑定”
- 添加一个新的HTTPS绑定,并select刚创build的证书(如果您的证书是通配符证书,则需要指定一个主机名)
- 点击确定并testing。
为您的特定域创build新证书:
打开Powershell ISE作为pipe理员,运行命令:
New-SelfSignedCertificate -DnsName * .mydomain.com,localhost -CertStoreLocation cert:\ LocalMachine \ My
要信任新的证书:
打开mmc.exe
转到控制台根目录 – >证书(本地计算机) – >个人
select您创build的证书,然后点击右键 – >所有任务 – >导出,然后按照导出向导创build一个.pfx文件
转到控制台根目录 – >证书 – >受信任的根证书颁发机构,并导入新的.pfx文件
将证书绑定到您的网站:
打开IISpipe理器
select您的网站,然后select右侧窗格中的编辑网站 – >绑定
使用正确的主机名和新证书添加新的https绑定
当我想要启用SSL到IIS 8托pipe的项目时,我遇到了同样的问题。最后,我使用的工具是OpenSSL ,经过了许多天与makecert命令作斗争。证书是在Debian中生成的,但我可以将其无缝导入IIS 7和8。
下载与你的操作系统和这个configuration文件兼容的OpenSSL 。 将configuration文件设置为OpenSSL的默认configuration。
首先,我们将生成authentication中心(CA)的私钥和证书。 此证书用于签署证书请求(CSR)。
您必须完成此过程中所需的所有字段。
-
openssl req -new -x509 -days 3650 -extensions v3_ca -keyout root-cakey.pem -out root-cacert.pem -newkey rsa:4096
您可以使用默认设置创build一个configuration文件,如下所示:现在我们将生成证书请求,这是发送给证书颁发机构的文件。
通用名称必须设置为您网站的域名,例如: public.organization.com 。
-
openssl req -new -nodes -out server-csr.pem -keyout server-key.pem -newkey rsa:4096
现在,证书请求使用生成的CA证书进行签名。
-
openssl x509 -req -days 365 -CA root-cacert.pem -CAkey root-cakey.pem -CAcreateserial -in server-csr.pem -out server-cert.pem
生成的证书必须导出到可以导入到IIS中的.pfx文件。
-
openssl pkcs12 -export -out server-cert.pfx -inkey server-key.pem -in server-cert.pem -certfile root-cacert.pem -name "Self Signed Server Certificate"
在这一步中,我们将导入证书CA.
-
在您的服务器中,必须将CA证书导入受信任的根证书颁发机构,因为IIS可以信任要导入的证书。 请记住,要导入到IIS中的证书已使用CA的证书进行签名。
- 打开命令提示符并键入mmc 。
- 点击文件 。
- select添加/删除pipe理单元…。
- 双击证书 。
- select计算机帐户和下一步 – > 。
- select本地计算机并完成 。
- 好的 。
- 转至证书 – > 受信任的根证书颁发机构 – > 证书 ,单击证书并select所有任务 – > 导入 …
- select下一步 – > 浏览…
- 您必须select所有文件才能浏览root-cacert.pem文件的位置。
- 点击下一步,然后select将所有证书放入以下存储 : 受信任的根证书颁发机构 。
- 点击下一步并完成 。
通过这一步,IIS信任我们的证书的真实性。
-
在我们的最后一步,我们将把证书导入IIS并添加绑定站点。
- 打开Internet信息服务(IIS)pipe理器或在命令提示符下键入inetmgr并转到服务器证书 。
- 点击Import …。
- 在Web Hosting上设置.pfx文件的path,密码和Select证书存储。
- 点击确定 。
-
现在在IISpipe理器上进入您的站点并select绑定…并添加一个新的绑定。
-
selecthttps作为绑定的types,您应该能够看到导入的证书。
- 点击确定 ,所有完成。
另一个select是创build一个自签名证书,允许您指定每个网站的域名。 这意味着您可以跨多个域名使用它。
在IISpipe理器中
- 点击机器名称节点
- 打开服务器证书
- 在“动作”面板中,select“创build自签名证书”
- 在“指定一个友好的名字…”中,将其命名为Dev(从types列表中select“Personal”)
- 保存
现在,在你的网站在IIS中…
- pipe理绑定
- 为Https创build一个新的绑定
- 从列表中select您的自签名证书
- 一旦选定,域名框将被启用,您将能够input您的域名。
生成自签名证书的另一个简单方法是使用Jexus Manager,
- 在“连接”面板中select一个服务器节点。
- 在中间的面板中,单击服务器证书图标打开pipe理页面。
- 在“动作”面板下,单击“生成自签名证书…”菜单项。
https://www.jexusmanager.com/en/latest/tutorials/self-signed.html