【问题标题】:SSL Certificate Invalid on localhost本地主机上的 SSL 证书无效
【发布时间】:2018-07-28 07:29:58
【问题描述】:

我正在尝试在 Chrome (V68) 上保护我的本地主机网站(在 MAMP pro 上),到目前为止,我已经做了以下事情:

  • 通过MAMP生成证书和证书密钥文件
  • 将证书添加到钥匙串访问并设置为始终信任
  • 从 Chrome 中拖出证书,双击并确保将其设置为始终信任

查看 Chrome 开发人员安全工具,它显示以下内容:

【问题讨论】:

  • 如果您计划在某个时候购买 SSL 证书以将您的网站投入生产,那么为什么不直接使用该证书呢?它应该可以自动与 Chrome 和任何其他现代浏览器一起使用。
  • @TimBiegeleisen 生产站点使用 Let's Encrypt 那么我如何修改该证书以使其对开发站点有效?
  • 你不能,除非它在同一个域或子域上。对于本地测试,您可以关闭 SSL。
  • @TimBiegeleisen 我需要开发人员的 SSL 来执行需要有效 SSL 证书的服务人员
  • 我只能说证书创建不正确。它应该有一个有效的主题备用名称和通用名称,其中包含与您在 chrome 中连接到站点所使用的主机名相同的主机名。

标签: ssl https localhost certificate mamp-pro


【解决方案1】:

Mamp 在修复这个错误方面做得并不好,他们需要在 SSL 证书中生成更多信息。要修复它,您需要创建一个 conf 文件并运行一些终端命令。这对我有用

首先:conf 文件 sample.local.conf 将 sammple.local 替换为您的本地站点 url

[ req ]
default_bits       = 4096
distinguished_name = req_distinguished_name
req_extensions     = req_ext

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = US
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = NEW YORK
localityName                = Locality Name (eg, city)
localityName_default        = NEW YORK
organizationName            = Organization Name (eg, company)
organizationName_default    = SAMPLE
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64
commonName_default          = sample.local

[ req_ext ]
subjectAltName = @alt_names

[alt_names]
DNS.1   = sample.local

首先制作 .KEY

openssl genrsa -out sample.local.key 4096

制作.CSR

openssl req -new -sha256 \
   -out sample.local.csr \
   -key sample.local.key \
   -config sample.local.conf 

然后

openssl req -text -noout -in sample.local.csr

创建 .CRT

openssl x509 -req \
    -days 3650 \
    -in sample.local.csr \
    -signkey sample.local.key \
    -out sample.local.crt \
    -extensions req_ext \
    -extfile sample.local.conf

然后,在 mac 上,您可以在终端中运行以下命令,而不是通过钥匙串。

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain sample.local.crt

【讨论】:

  • 到目前为止,该错误已在 MAMP 5 的较新版本中得到修复。最后您仍然需要信任证书
  • Chrome 仍然将此站点标记为“不安全”,即使证书是“有效的”!可能是因为它是“自签名”
  • 如果它仍然标记为不安全你没有正确完成这些步骤,这个方法仍然对我有用
  • 它正在工作,系统可能需要重新启动
猜你喜欢
  • 2019-03-09
  • 2016-04-30
  • 2018-09-09
  • 1970-01-01
  • 2017-08-05
  • 2015-06-30
  • 2018-10-02
  • 2015-07-21
  • 2015-09-14
相关资源
最近更新 更多