我已经完成了如何在本地主机上使用https / SSL中详细介绍的步骤。但这会为我的机器名称设置一个自签名证书,当通过https:// localhost浏览它时,我会收到IE警告。
有没有一种方法可以为“ localhost”创建自签名证书来避免此警告?
我已经完成了如何在本地主机上使用https / SSL中详细介绍的步骤。但这会为我的机器名称设置一个自签名证书,当通过https:// localhost浏览它时,我会收到IE警告。
有没有一种方法可以为“ localhost”创建自签名证书来避免此警告?
Answers:
尽管此帖子是针对Windows标记的,但它是OS X上的相关问题,我在其他地方都没有看到答案。以下是在OS X上为localhost创建自签名证书的步骤:
# Use 'localhost' for the 'Common name'
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt
# Add the cert to your keychain
open localhost.crt
在中Keychain Access
,双击此新的localhost证书。展开“信任”旁边的箭头,然后选择“始终信任”。Chrome和Safari现在应该信任此证书。例如,如果要将此证书与node.js一起使用:
var options = {
key: fs.readFileSync('/path/to/localhost.key').toString(),
cert: fs.readFileSync('/path/to/localhost.crt').toString(),
ciphers: 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384',
honorCipherOrder: true,
secureProtocol: 'TLSv1_2_method'
};
var server = require('https').createServer(options, app);
ssh-keygen
不必要,因为openssl命令还会创建一个新密钥(并覆盖ssh创建的密钥)。
-subj '/CN=localhost'
来完全自动化该过程openssl
。
sudo security add-trusted-cert -p ssl -d -r trustRoot -k ~/Library/Keychains/login.keychain localhost.crt
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
在Chrome 60中安装了Safari,而Safari 10.1.2也不喜欢它。
由于此问题带有标签,IIS
并且我找不到如何获得受信任证书的好答案,因此我将给我2美分:
首先以管理员身份使用PowerShell中@AuriRahimzadeh的命令:
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
很好,但是证书不受信任,将导致以下错误。这是因为它没有安装在中Trusted Root Certification Authorities
。
通过开始解决此问题mmc.exe
。
然后转到:
文件->添加或删除管理单元->证书->添加->计算机帐户->本地计算机。单击完成。
展开Personal
文件夹,您将看到您的localhost
证书:
将证书复制到Trusted Root Certification Authorities - Certificates
文件夹中。
最后一步是打开Internet Information Services (IIS) Manager
还是简单inetmgr.exe
。从那里转到您的站点,选择Bindings...
和Add...
或Edit...
。https
从下拉菜单中设置并选择您的证书。
您的证书现已受信任:
您可以使用PowerShell通过new-selfsignedcertificate cmdlet生成自签名证书:
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
注意:不推荐使用makecert.exe。
Cmdlet参考:https : //technet.microsoft.com/itpro/powershell/windows/pkiclient/new-selfsignedcertificate
-KeyLocation
标志的您可以指定位置。
在这个问题上花了很多时间后,我发现每当遵循有关使用IIS制作自签名证书的建议时,我发现“颁发给”和“颁发者”是不正确的。SelfSSL.exe是解决此问题的关键。以下网站不仅提供了逐步制作自签名证书的方法,而且还解决了“颁发给”和“颁发者”问题。这是我发现的用于制作自签名证书的最佳解决方案。如果您希望以视频形式查看相同的教程,请单击此处。
SelfSSL的示例用法如下所示:
SelfSSL /N:CN=YourWebsite.com / V:1000 / S:2
SelfSSL /?将提供带有解释的参数列表。
如果您试图创建一个可以让您离开的自签名证书,http://localhost/mysite
那么这是一种创建证书的方法
makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.1 -sv localhost.pvk localhost.cer
cert2spc localhost.cer localhost.spc
pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx
从http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/32bc5a61-1f7b-4545-a514-a11652f11200
pvk2pfx -spc
接受 .spc和.cer
我会推荐Pluralsight用于创建自签名证书的工具:http ://blog.pluralsight.com/selfcert-create-a-self-signed-certificate-interactively-gui-or-programmatically-in-net
将您的证书设置为.pfx并将其导入IIS。并将其添加为受信任的根证书颁发机构。
是的,没有。自签名证书导致该警告消息,因为该证书不是由受信任的证书颁发机构签名的。您可以考虑使用一些选项来删除本地计算机上的此警告。有关详细信息,请参阅此问题的最高解答:
要使Internet Explorer 8接受自签名证书,我需要怎么做?
希望这可以帮助!
编辑:
抱歉,最初我不知道您被限制在localhost。您可以尝试按照下面的链接上的说明“使用正确的通用名称生成自签名证书”。
http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html
如果你正在使用Visual Studio中,有一个简单的方法来设置和使用IIS快速启用SSL 这里解释