如何使用SSL为本地开发创建证书?

33

我目前正在使用LAMP堆栈对一个Web项目进行本地开发。由于我的生产应用程序将使用https进行登录,因此我希望能够在本地开发环境中模拟此过程,以便所有的url保持一致。我对ssl证书还不是很熟悉,请问有没有相关参考资料可以指引我如何做呢?我需要签署自己的证书吗?证书应该放在哪里(我使用apache进行虚拟主机配置)?谢谢。


自己备忘录:并非所有与证书相关的错误都最适合使用证书来解决。虽然这个问题似乎需要创建一个证书,但在某些情况下,有更简单的替代方案。大多数情况下,在本地开发中从HTTPS切换到HTTP可能是合适的。列出决策标准可能会很有用。 - Kay V
6个回答

35

是的,这就是我在设置 SSL 时使用的步骤,用于创建自签名证书。 - user447688
这是一个非常好的逐步指南。但即使我已经完成了所有步骤,我的浏览器仍然在抱怨安全性问题。我正在使用Chrome版本50.0.2661.86(64位)。即使在使用apache设置了所有内容之后,它仍然显示“隐私错误-您的连接不是私密的-攻击者可能正在尝试从mysite.com(例如密码,消息或信用卡)窃取您的信息。NET :: ERR_CERT_AUTHORITY_INVALID”。我该怎么办? - Alexandre Schmidt
2
您的浏览器报错是因为您的证书是自签名的(由您的计算机签名,而不是根证书颁发机构签名),因此无效。 - Szántó Zoltán

1

1
最好的方法是创建自签名证书并将其添加到用于测试的任何计算机上,这样客户端就会认为它是真实的... 当然,它确实是真实的... 只是没有通过“受信任”的途径。(引号是因为我发誓这一切都与金钱有关!)
我刚刚找到了这个页面,应该可以帮助你完成操作。

http://www.perturb.org/display/entry/754/


3
我同意你的引言:“证书可以验证您的流量不会被拦截”,这是绝大多数用户关心的主要事项。但通过将其与“这确实是XYZ网站”混淆,并让购买公众相信除非来自“可信任来源”,否则它不是“安全”的,Verisign和主要浏览器制造商设置了一个轻松获利的机会。最新的骗局是“扩展验证”SSL证书——它只是贪婪的表现,呼出了不诚实的气息。 - Mark Brittingham

1

说实话,letsencrypt.org网站上有一篇博客文章建议使用minica,同时提供了一个openssl命令来创建自签名证书:https://letsencrypt.org/docs/certificates-for-localhost/ - Kay V

0

我最喜欢的是Ralf为Apache modssl提供的文档。这个页面解释了如何创建一个测试证书。每当我需要创建一个测试证书时,我总是去这个页面。

http://www.modssl.org/docs/2.8/ssl_faq.html


0

显然,由于您正在使用Java和Apache,这并不会太有用,但无论如何,如果您还进行任何.Net开发,您将拥有这些工具,并且也许这可以帮助您实际生成证书。我使用的是.Net SDK中可用的makecert,以下是我用于为本地.Net开发和IIS创建自己的SSL证书的批处理文件;

@ECHO OFF
REM 
REM This script will create a certificate to enable HTTPS for the localhost in IIS
REM Complete the following steps to install the certificate
REM
REM 1.  Run this file to create the certificate 
REM 2.  Open MMC.exe
REM 3.  Click File > Add/Remove Snap In > Add and select 'Certificates'
REM 4.  Select 'Computer Account'
REM 5.  Select 'Local Computer' and click 'Finish', 'Close', 'OK'
REM 6.  Expand Certificates > Personal > Certificates, the new certificate should be listed
REM 7.  In IIS open the Properties of the Default Web Site
REM 8.  Select 'Directory Security' tab and click 'Server Certificate'
REM 9.  The Certificate Wizard will open, choose 'Assign Existing Certificate'   [may     need to cancel a pending certificate request]
REM 10. Select new certificate from list and accept change
REM 11. Ensure that the site is using the default port for SSL 443
REM

C:
CD \
CALL "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sdkvars.bat"
ECHO Creating Certificate
makecert -r -pe -n "CN=localhost" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
PAUSE

如果您使用其他主机头访问站点,请更改"CN=localhost",根据您使用的Visual Studio版本,您可能需要更改CALL语句中的路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接