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

Posted

技术标签:

【中文标题】如何使用 SSL 为本地开发创建证书?【英文标题】:How to create a certificate for local development with SSL? 【发布时间】:2010-11-15 06:51:04 【问题描述】:

我目前正在使用 LAMP 堆栈对 Web 项目进行本地开发。由于我的生产应用程序将使用 https 进行登录,我希望能够在我的本地开发环境中模仿这一点,以便所有 url 保持一致。我是 ssl 证书的新手,所以有人可以指点我一些关于如何做到这一点的参考吗?我需要签署自己的证书吗?我在哪里放置证书(我有使用 apache 的虚拟主机配置)?谢谢。

【问题讨论】:

【参考方案1】:

我是新来的,但是去这个网站和那里的信息

Creating a self signed Certificate

【讨论】:

是的,这是我在设置 SSL 时用来创建自签名的演练 这是一个非常好的分步指南。但即使做了这一切,我的浏览器仍然抱怨安全。我正在使用 Chrome 版本 50.0.2661.86(64 位)。即使在使用 apache 设置完所有内容后,它仍然显示“隐私错误 - 您的连接不是私密的 - 攻击者可能试图从 mysite.com 窃取您的信息(例如,密码、消息或信用卡)。NET:: ERR_CERT_AUTHORITY_INVALID”。我该怎么办? 您的浏览器报错,因为您的证书是自签名的(由您的计算机签名,而不是由根证书颁发机构签名)并且无效。【参考方案2】:

您可以使用Java's keystore 生成自签名证书,用于本地开发。

【讨论】:

【参考方案3】:

您最好制作一个自签名证书并将其添加到您用于测试的任何机器上。然后它应该对客户来说是“真实的”......当然,它是真实的......只是不是在“受信任”的地方。 (引号,因为我发誓这一切都是为了钱!)

我刚刚找到了应该引导您完成它的页面

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

【讨论】:

我同意您的报价:该证书验证您的流量不会被拦截 - 这是绝大多数用户关心的首要问题。通过将其与“这确实是 XYZ 的网站”混为一谈,并说服购买公众它不“安全”,除非它来自“受信任的来源”,威瑞信和主要浏览器制造商已经建立了一个简单的获利机会。最新的球拍是“扩展验证”SSL——它只是吸进贪婪,呼出不诚实。【参考方案4】:

我认为 2020 年要走的路可能是使用一些命令行工具,例如

mkcerthttps://github.com/FiloSottile/mkcert minicahttps://github.com/jsha/minica Fishdrowned/sslhttps://github.com/Fishdrowned/ssl devilbox/cert-genhttps://github.com/devilbox/cert-gen

所有工具都是围绕一些 openssl 命令或其他库生成证书的包装器。

【讨论】:

【参考方案5】:

我最喜欢的是 Ralf 的 apache modssl 文档。本页介绍如何制作测试证书。当我需要制作一个时,我总是会去找它。

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

【讨论】:

【参考方案6】:

显然,由于您使用的是 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 语句中的路径。

【讨论】:

以上是关于如何使用 SSL 为本地开发创建证书?的主要内容,如果未能解决你的问题,请参考以下文章

sh 为与您拥有证书颁发机构的开发站点轻松创建本地SSL证书https://deliciousbrains.com/ssl-cert

微信本地开发遭遇SSL证书问题(PHP版)

如何使用 SSL 和 Vue CLI 进行本地开发?

asp.net:如何使用 ssl 证书

Paypal Access - SSL 证书:无法获取本地颁发者证书

Paypal Access - SSL 证书:无法获取本地颁发者证书