如何为开发域名创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理器

  1. 启动IISpipe理器
  2. 在服务器级别的IIS下,select服务器证书
  3. 在操作下的右侧select创build自签名证书
  4. 在说明“为证书指定一个友好名称”的地方input适当的名称作为参考。
    1. 例如: www.domain.comsubdomain.domain.com
  5. 然后,从左侧的列表中select您的网站
  6. 在“操作”下的右侧select“绑定”
  7. 添加一个新的HTTPS绑定,并select刚创build的证书(如果您的证书是通配符证书,则需要指定一个主机名)
  8. 点击确定并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)。

您必须完成此过程中所需的所有字段。

  1. 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

  1. openssl req -new -nodes -out server-csr.pem -keyout server-key.pem -newkey rsa:4096

现在,证书请求使用生成的CA证书进行签名。

  1. openssl x509 -req -days 365 -CA root-cacert.pem -CAkey root-cakey.pem -CAcreateserial -in server-csr.pem -out server-cert.pem

生成的证书必须导出到可以导入到IIS中的.pfx文件。

  1. 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.

  1. 在您的服务器中,必须将CA证书导入受信任的根证书颁发机构,因为IIS可以信任要导入的证书。 请记住,要导入到IIS中的证书已使用CA的证书进行签名。

    • 打开命令提示符并键入mmc
    • 点击文件
    • select添加/删除pipe理单元…。
    • 双击证书
    • select计算机帐户下一步 – >
    • select本地计算机完成
    • 好的
    • 转至证书 – > 受信任的根证书颁发机构 – > 证书 ,单击证书并select所有任务 – > 导入

在这里输入图像说明

  • select下一步 – > 浏览…
  • 您必须select所有文件才能浏览root-cacert.pem文件的位置。
  • 点击下一步,然后select将所有证书放入以下存储受信任的根证书颁发机构
  • 点击下一步完成

在这里输入图像说明

通过这一步,IIS信任我们的证书的真实性。

  1. 在我们的最后一步,我们将把证书导入IIS并添加绑定站点。

    • 打开Internet信息服务(IIS)pipe理器或在命令提示符下键入inetmgr并转到服务器证书
    • 点击Import …。
    • Web Hosting上设置.pfx文件的path,密码和Select证书存储。

在这里输入图像说明

  • 点击确定
  • 现在在IISpipe理器上进入您的站点并select绑定…添加一个新的绑定。

  • selecthttps作为绑定的types,您应该能够看到导入的证书。

  • 点击确定 ,所有完成。

在这里输入图像说明

另一个select是创build一个自签名证书,允许您指定每个网站的域名。 这意味着您可以跨多个域名使用它。

在IISpipe理器中

  1. 点击机器名称节点
  2. 打开服务器证书
  3. 在“动作”面板中,select“创build自签名证书”
  4. 在“指定一个友好的名字…”中,将其命名为Dev(从types列表中select“Personal”)
  5. 保存

现在,在你的网站在IIS中…

  1. pipe理绑定
  2. 为Https创build一个新的绑定
  3. 从列表中select您的自签名证书
  4. 一旦选定,域名框将被启用,您将能够input您的域名。

在这里输入图像说明

生成自签名证书的另一个简单方法是使用Jexus Manager,

Jexus经理

  1. 在“连接”面板中select一个服务器节点。
  2. 在中间的面板中,单击服务器证书图标打开pipe理页面。
  3. 在“动作”面板下,单击“生成自签名证书…”菜单项。

https://www.jexusmanager.com/en/latest/tutorials/self-signed.html