【问题标题】:Getting Chrome to accept self-signed localhost certificate让 Chrome 接受自签名的本地主机证书
【发布时间】:2011-11-26 16:29:59
【问题描述】:

我已经为 localhost CN 创建了一个自签名 SSL 证书。正如预期的那样,Firefox 在最初抱怨它后接受了这个证书。然而,Chrome 和 IE 拒绝接受它,即使在将证书添加到受信任根下的系统证书存储区之后也是如此。即使当我在 Chrome 的 HTTPS 弹出窗口中单击“查看证书信息”时,证书被列为正确安装,它仍然坚持认为证书不可信。

我应该怎么做才能让 Chrome 接受证书并停止抱怨?

【问题讨论】:

  • 当你说Firefox最初抱怨它时,你的意思是它要求你添加证书例外吗?如果证书已正确安装,则不应发生这种情况。在我看来,这三个浏览器都在抱怨,但 Firefox 允许您取消它的抱怨。我将此作为评论发布,因为我没有具体的答案,但我已经做到了这一点,并且在所有三个浏览器中都可以正常工作。我建议你先尝试让它在 IE 上运行,然后再担心其他两个。抱歉,我无法提供更多帮助!
  • Firefox 确实使用系统证书存储。
  • 如果您的证书签名使用 SHA-1,最新版本的 Chrome(大约 57)将显示警告即使您已经能够成功添加自定义证书。无论如何,开发人员工具的“安全”面板会更具体地说明问题所在,例如:net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM
  • 我刚刚停止使用 Chrome 进行开发,因为它对开发人员不友好。通常,最终陷入这种情况的人无论如何都知道自己在做什么。谢谢,但不谢谢。 Chrome 让我受够了挫折!
  • 2021 仍然没有简单的方法将本地主机或任​​何 IP 标记为安全。来吧......谷歌正在放弃照片中的无限存储空间。广告像过去一样出现在您的面前,而广告拦截器已变得无用。根据您要查找的内容,搜索结果似乎被“谴责”。回顾一下,也许是时候少用谷歌的生态系统了?是的!

标签: google-chrome ssl certificate self-signed


【解决方案1】:

当我尝试在浏览器中导入证书时,它对我不起作用... 在 chrome 中打开开发者工具 > 安全,然后选择查看证书。 单击详细信息选项卡并将其导出。

// LINUX

sudo apt-get install libnss3-tools 

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n [EXPORTED_FILE_PATH] -i [EXPORTED_FILE_PATH]

运行此命令,如果您看到刚刚导入的文件,您就可以开始了!

 certutil -d sql:$HOME/.pki/nssdb -L

// 窗口

Start => run => certmgr.msc

在左侧选择受信任的根证书颁发机构 => 个人。 单击操作选项卡 => 所有操作/导入,然后选择您之前从浏览器导出的文件

别忘了重启chrome!!!

祝你好运! ;)

【讨论】:

  • 它可以在桌面上运行,但是是否有可能为移动 chrome 提供解决方案?我的手机通过https://192.168.1.127 访问本地主机
  • 对这个寄予厚望。该文件夹下没有个人;只是证书。去了那里,做了进口。似乎工作。没有帮助。
【解决方案2】:

对于 MacOS 上的 Chrome,如果您已准备好证书:

  • 退出 Chrome (cmd+Q)。
  • 启动 Keychain Access 应用并打开“证书”类别。
  • 将您的证书文件拖到“钥匙串访问”窗口并输入证书文件的密码。
  • 双击您的证书并展开“信任”列表。
    • 在“使用此证书时”行中,选择“始终信任”。
    • 关闭此内容并输入您的密码。
  • 启动 Chrome 并清除所有缓存。
  • 检查一切是否正常。

【讨论】:

    【解决方案3】:

    我什么都试过了,是什么使它起作用:导入时,选择正确的类别,即受信任的根证书颁发机构

    (对不起,这是德语,但请按照图片进行操作)

    【讨论】:

      【解决方案4】:

      我在kellen 的回答和重要的update from Toby J 之后取得了成功,但必须进行此修改:

      创建自签名证书时,必须将新的subjectAltName 字段放在v3_ca 扩展名下,而不是v3_req。我将/etc/ssl/openssl.conf 复制到一个临时文件中,然后在[ v3_ca ] 下添加了一行subjectAltName = DNS:*.example.com。然后将该文件传递给证书创建命令,类似于

        openssl req -x509 -nodes -newkey rsa:2048 \
                -config /tmp/openssl-revised.cfg \
                -keyout example.com.key -out example.com.crt
      

      并遵循kellen's 更新的步骤。

      【讨论】:

        【解决方案5】:
        mkdir CA
        openssl genrsa -aes256 -out CA/rootCA.key 4096
        openssl req -x509 -new -nodes -key CA/rootCA.key -sha256 -days 1024 -out CA/rootCA.crt
        
        openssl req -new -nodes -keyout example.com.key -out domain.csr -days 3650 -subj "/C=US/L=Some/O=Acme, Inc./CN=example.com"
        openssl x509 -req -days 3650 -sha256 -in domain.csr -CA CA/rootCA.crt -CAkey CA/rootCA.key -CAcreateserial -out example.com.crt -extensions v3_ca -extfile <(
        cat <<-EOF
        [ v3_ca ]
        subjectAltName = DNS:example.com
        EOF
        )
        

        【讨论】:

        • 这是唯一一个对我有用的 chrome 77。谢谢你拯救了我的一天。
        • 如何使用生成的文件?我了解如何使用域 .crt 和 .key 文件,但 .csr 文件是做什么用的?以及如何使用 rootCA.* 文件?请扩展您的答案...
        【解决方案6】:

        在 Linux 上的 Chromium 上管理 SSL 证书的 GUI 对我来说不能正常工作。但是,他们的文档给出了正确的答案。诀窍是运行下面导入自签名 SSL 证书的命令。只需更新 &lt;certificate-nickname&gt;certificate-filename.cer 的名称,然后重新启动 chromium/chrome。

        来自文档:

        在 Linux 上,Chromium 使用 NSS 共享数据库。如果内置管理器不适合您,您可以使用 NSS 命令行工具配置证书。

        获取工具

        • Debian/Ubuntu:sudo apt-get install libnss3-tools

        • Fedora:su -c "yum install nss-tools"

        • Gentoo:su -c "echo 'dev-libs/nss utils' &gt;&gt; /etc/portage/package.use &amp;&amp; emerge dev-libs/nss"(您需要以nss 前缀启动以下所有命令,例如nsscertutil。) 开放使用:sudo zypper install mozilla-nss-tools

        要信任自签名服务器证书,我们应该使用

        certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n &lt;certificate-nickname&gt; -i certificate-filename.cer

        列出所有证书

        certutil -d sql:$HOME/.pki/nssdb -L

        TRUSTARGS 是由零个或多个字母字符组成的三个字符串,以逗号分隔。它们定义了 SSL、电子邮件和对象签名应如何信任证书,并在 certutil 文档或 Meena 的关于信任标志的博客文章中进行了说明。

        为 SSL 客户端身份验证添加个人证书和私钥 使用命令:

        pk12util -d sql:$HOME/.pki/nssdb -i PKCS12_file.p12

        导入存储在 PKCS #12 文件中的个人证书和私钥。个人证书的 TRUSTARGS 将设置为“u,u,u”。

        删除证书 certutil -d sql:$HOME/.pki/nssdb -D -n &lt;certificate nickname&gt;

        摘自: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux_cert_management.md

        【讨论】:

          【解决方案7】:

          对于 Fedora、Ubuntu、Linux,如果您在使用 gui 添加证书以添加新的 root 权限时收到 example.com Not a Certification authority 错误。如果您想信任服务器自签名证书,它不能提及无效授权...即使它本身就是如此。我只能通过信任我的权威并使用该权威密钥签署服务器证书来使其工作。

          这是它接受的自签名 CA 证书。这是我发现绕过cert_authority_invalid 的唯一方法,我尝试了几个小时让它接受自签名端点证书,没有雪茄。只要声明为CA:TRUE,用户界面将接受自签名权限。之后,所有由该密钥签署的具有正确 DN 的证书都将被 chrome 接受,而无需单独添加它们。

          openssl req -new -x509 -extensions v3_req -days 8440 -config ca.conf -key rockstor.key -out rockstor.cert

          [req]
          distinguished_name=dn
          req_extensions=v3_req
          prompt = no
          
          [v3_req]
          basicConstraints=CA:TRUE,pathlen:0
          keyUsage = keyEncipherment, dataEncipherment
          extendedKeyUsage = serverAuth, clientAuth
          subjectAltName=@alt_names
          
          [alt_names]
          DNS.1 = ca.tdpowerskills.com
          
          [dn]
          C = US
          ST = LA
          L = Alexandria
          O = TDPS Certification Authority
          OU = LEARNOPS
          CN = ca.tdpowerskills.com
          

          openssl req -new -x509 -extensions v3_req -days 8440 -config config.conf -key rockstor.key -out rockstor.cert

          [req]
          distinguished_name=dn
          req_extensions=v3_req
          prompt = no
          
          [v3_req]
          basicConstraints=CA:FALSE
          keyUsage = keyEncipherment, dataEncipherment
          extendedKeyUsage = serverAuth, clientAuth
          subjectAltName=@alt_names
          issuerAltName=DNS:ca.tdpowerskills.com
          
          [alt_names]
          DNS.1 = big.tdps.app
          
          [dn]
          C = US
          ST = LA
          L = Alexandria
          O = TDPS Certification Authority
          OU = LEARNOPS
          CN = ca.tdpowerskills.com
          

          如果这不起作用:

          • chrome://restart 实际重启

          • 尝试使用 firefox 获取有关错误的更多详细信息,它往往会更好地解释错误...虽然 chrome 会说 ERR_CERTIFICATE_INVALID,但 firefox 会抛出:MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY。

          • 请记住,chrome 现在需要主题备用名称并且几乎忽略 CN。

          对于其他人:

          • certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n &lt;nickname&gt; -i &lt;my.crt&gt; // 用于服务器证书

          • certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n &lt;nickname&gt; -i &lt;my.crt&gt; 代表 CA 的 https://blogs.oracle.com/meena/about-trust-flags-of-certificates-in-nss-database-that-can-be-modified-by-certutil

          • 对于 Firefox,添加异常证书的 UI 确实有效,并且一旦您这样做,它就会信任它。

          • 也许您在 /etc/pki/tls/openssl.cnf 中有一些时髦的设置,这些设置已与您的配置合并。

          • 也许您没有在配置或命令行中添加扩展,例如 v3_req

          • 注意,我的方法绕过了对 CSR 的需求,只需使用授权密钥签署证书并添加开发服务器的详细信息。 CSR 允许更多密钥以实现实际安全。

          • 我尝试了所有方法,但 chrome 需要具有基本约束 CA:true 设置的权限。并且服务器证书都必须由有效的授权机构签发......即使这只是另一个使用 CA:true 签署的证书。

          【讨论】:

            【解决方案8】:

            通过这种方法 chrome://flags/#allow-insecure-localhost 允许不安全的本地主机正常工作

            只需要将开发主机名创建为 xxx.localhost。

            【讨论】:

              【解决方案9】:

              要在 Windows 中创建 Chrome v58 及更高版本将信任的自签名证书,请使用提升的权限启动 Powershell 并键入:

              New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Subject "fruity.local" -DnsName "fruity.local", "*.fruity.local" -FriendlyName "FruityCert" -NotAfter (Get-Date).AddYears(10)
              #notes: 
              #    -subject "*.fruity.local" = Sets the string subject name to the wildcard *.fruity.local
              #    -DnsName "fruity.local", "*.fruity.local"
              #         ^ Sets the subject alternative name to fruity.local, *.fruity.local. (Required by Chrome v58 and later)
              #    -NotAfter (Get-Date).AddYears(10) = make the certificate last 10 years. Note: only works from Windows Server 2016 / Windows 10 onwards!!
              

              执行此操作后,证书将保存到 Personal\Certificates 存储下的本地计算机证书中。

              您希望将此证书复制到 Trusted Root Certification Authorities\Certificates 存储。

              一种方法:单击 Windows 开始按钮,然后键入 certlm.msc。 然后按照以下屏幕截图将新创建的证书拖放到 Trusted Root Certification Authorities\Certificates 存储中。

              【讨论】:

              • @mpowrie。生成这个之后,我如何将它链接到 Apache 网络服务器?在本地主机服务器上。
              • Ifedi Okonkwo:抱歉,我不确定 Apache 网络服务器,但是使用 IIS,您可以添加 https 类型的站点绑定,包括完全限定的主机名,然后选择 SSL 证书。
              • 这就像一个魅力。如果您想将该证书分配为绑定,我会说您需要执行一个额外的步骤......并且该证书也需要位于 Personal > Certificates 中。出于某种原因,拖放实际上将其从个人证书中删除并放置在受信任的证书中。因此,请务必复制并粘贴它。
              【解决方案10】:

              我的解决方案和解释:

              我拥有使用 IIS 资源工具包工具 SelfSSL.exe 创建的自签名证书。在我本地计算机上的证书列表中,我看到这个自签名证书只有一个用途服务器身份验证。 所以我创建了具有两个目的的新自签名证书:服务器身份验证客户端身份验证。现在 Chrome 不再抱怨了。

              This article 展示了许多生成自签名证书的方法。请注意,并非所有选项都允许您指定证书用途。 我用的是PowerShell方式:

              $cert = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname company.co.nz
              

              注意:正如answer by kellen 所述,Chrome 确实允许您设置证书的用途,但是如果没有考虑到最后一个证书的创建目的,IMO 它不能为证书添加新的用途。

              【讨论】:

              • 你先生是个天才!
              【解决方案11】:

              Filippo Valsorda 为 lots of trust stores 编写了一个跨平台工具 mkcert。我想他写这篇文章的原因与这个问题有这么多答案的原因相同:为受信任的根 CA 签名的 SubjectAltName 证书做“正确”的事情是一件痛苦的事。

              mkcert 包含在 Windows、macOS 和几种 Linux 风格的主要包管理系统中。在 Testing Powerful Features 的第 4 步的 Chromium 文档中也提到了这一点。

              mkcert

              mkcert 是一个制作本地可信开发证书的简单工具。它不需要任何配置。

              $ mkcert -install
              
              Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" ?
              The local CA is now installed in the system trust store! ⚡️
              The local CA is now installed in the Firefox trust store (requires browser restart)! ?
              
              $ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
              
              Using the local CA at "/Users/filippo/Library/Application Support/mkcert" ✨
              
              Created a new certificate valid for the following names ?
               - "example.com"
               - "*.example.com"
               - "example.test"
               - "localhost"
               - "127.0.0.1"
               - "::1"
              
              The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
              

              【讨论】:

              • 我无法让它工作,至少对于我的 sslip.io 服务的子域而言。
              • 这节省了大量时间!谢谢兄弟 :) 2022 年的作品真棒! macOS M1
              【解决方案12】:
              1. 在受信任的根 CA 存储中添加 CA 证书。

              2. 转到 chrome 并启用此标志!

              chrome://flags/#allow-insecure-localhost

              最后,只需使用 *.me 域或任何有效的域,如 *.com 和 *.net 并将它们维护在主机文件中。对于我的本地开发人员,我使用 *.me 或 *.com 并维护如下主机文件:

              1. 添加到主机。 C:/windows/system32/drivers/etc/hosts

                127.0.0.1 nextwebapp.me

              注意:如果在执行此操作时浏览器已经打开,错误会一直显示。所以,请关闭浏览器并重新开始。更好的是,隐身或开始新会话以立即生效。

              【讨论】:

              • 这个好像和the top-voted answer一样。
              • 我只将本地开发中允许的域名(即 *.me 站点)添加到 Windows 的主机文件中。人们添加证书,但有时即使证书安装正确,主机也无法验证 SSL 验证。在这种情况下,我们创建一个新会话。我只添加了这些提示。我已经穿过这个兔子洞太深了,所以我想确保有人知道如果需要它该做什么。
              【解决方案13】:

              只需5openssl 命令,您就可以做到这一点。

              请不要更改您的浏览器安全设置。

              使用以下代码,您可以 (1) 成为您自己的 CA,(2) 然后将您的 SSL 证书签署为 CA。 (3) 然后将 CA 证书(不是 SSL 证书,它进入您的服务器)导入 Chrome/Chromium。 (是的,这甚至适用于 Linux。)

              注意:对于 Windows,一些报告说 openssl 必须与 winpty 一起运行以避免崩溃。

              ######################
              # Become a Certificate Authority
              ######################
              
              # Generate private key
              openssl genrsa -des3 -out myCA.key 2048
              # Generate root certificate
              openssl req -x509 -new -nodes -key myCA.key -sha256 -days 825 -out myCA.pem
              
              ######################
              # Create CA-signed certs
              ######################
              
              NAME=mydomain.com # Use your own domain name
              # Generate a private key
              openssl genrsa -out $NAME.key 2048
              # Create a certificate-signing request
              openssl req -new -key $NAME.key -out $NAME.csr
              # Create a config file for the extensions
              >$NAME.ext cat <<-EOF
              authorityKeyIdentifier=keyid,issuer
              basicConstraints=CA:FALSE
              keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
              subjectAltName = @alt_names
              [alt_names]
              DNS.1 = $NAME # Be sure to include the domain name here because Common Name is not so commonly honoured by itself
              DNS.2 = bar.$NAME # Optionally, add additional domains (I've added a subdomain here)
              IP.1 = 192.168.0.13 # Optionally, add an IP address (if the connection which you have planned requires it)
              EOF
              # Create the signed certificate
              openssl x509 -req -in $NAME.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial \
              -out $NAME.crt -days 825 -sha256 -extfile $NAME.ext
              

              回顾一下:

              1. 成为 CA
              2. 使用您的 CA 证书+密钥签署您的证书
              3. 在您的 Chrome 设置(设置 > 管理证书 > 授权 > 导入)中将 myCA.pem 作为“授权”(导入“您的证书”)
              4. 在您的服务器中使用$NAME.crt$NAME.key 文件

              额外步骤(至少对于 Mac):

              1. 在“文件>导入文件”处导入CA证书,然后也在列表中找到,右键单击,展开“>信任”,选择“始终”
              2. basicConstraints=CA:FALSE 下方添加extendedKeyUsage=serverAuth,clientAuth,并确保在要求设置时将“CommonName”设置为与$NAME 相同

              您可以检查您的工作以确保正确构建证书:

              openssl verify -CAfile myCA.pem -verify_hostname bar.mydomain.com mydomain.com.crt
              

              【讨论】:

              • @maverick 浏览器和操作系统附带了他们信任的有限数量的 CA。尽管任何人都可以成为 CA,但要让任何人信任他们的证书,他们需要人们手动将其添加为受信任的 CA(正如我们在手动导入证书时告诉 Chrome 所做的那样)。
              • 太棒了!对于像我这样的 Mac 用户,请注意两点:在最后一行,使用 -days 825 而不是 -days 1825,因为 superuser.com/questions/1492643/…,值得注意的是,将根证书导入 Key Chain Access,您不仅需要“文件> 导入文件”,然后还要在列表中找到它,右键单击它,展开“>信任”,然后选择“始终”。
              • 如果您的本地开发服务器需要 PEM 文件而不是 CRT 文件,请不要担心,只需结合 .crt .csr 文件并将它们保存为 .pem 文件,你就可以开始了。
              • 终于成功了!这个答案太棒了。请不要忘记将 myCA.pem 加载到您的 Chrome 或 Firefox(设置 > 管理证书 > 授权 > 导入)
              • 在 Windows 上的 Chrome/ium 中,当您尝试导入证书时,pem 未列在可用的文件扩展名中,但它仍然可以导入它(只需选择所有文件过滤器)。
              【解决方案14】:

              截至 2020 年 3 月,在使用 Chrome 81 的 MacOS Catalina 上,一旦您使用上述 openssl 创建有效证书,这种情况就会发生变化。

              首先,我使用 Safari 浏览到我的网站,然后单击警告页面底部的链接,该链接允许我访问该网站。这将证书添加到我的 Mac 钥匙串(即 Keychain.app)中。 Safari 然后会让我查看页面。 Chrome 显示该证书是受信任的,但不允许我查看该页面。我继续收到 CERTIFICATE_INVALID 错误。

              在钥匙串中,选择左下方窗格中的所有项目。然后搜索您的 localhost DNS 名称(即 myhost.example.com)。

              双击您的证书。它会为您的证书打开一个编辑对话框。

              将“使用此证书时”更改为“始终信任”

              这完全违反直觉,因为 SSL 已经设置为 Always Trust,可能是 Safari 在添加证书时设置的。 Chrome 仅在我将其全局更改为 Always Trust 后才开始工作。当我把它改回来时,它停止工作了。

              【讨论】:

                【解决方案15】:

                这里我的 WINDOWS 解决方案可能适用于 LINUX

                Git 有 openssl

                C:\Program Files\Git\usr\bin\openssl.exe.

                导航到 C:\Program Files\Git\usr\bin\ 但最好添加到 PATH

                为证书创建一个文件夹
                创建一个文件 req.cnf
                像我的公司一样改变价值观
                不要删除
                主题AltName = @alt_names
                [alt_names]
                DNS.1 = 本地主机
                那里 Chrome 抱怨

                C = CA
                CA 是两个字母的国家代码 CA=Canada, US...
                ST = ON 是省 ON = 安大略

                req.cnf

                [req]
                distinguished_name = req_distinguished_name
                x509_extensions = v3_req
                prompt = no
                [req_distinguished_name]
                C = CA
                ST = ON
                L = Toronto
                O = MyCompany
                OU = MyDivision
                CN = localhost
                [v3_req]
                keyUsage = critical, digitalSignature, keyAgreement
                extendedKeyUsage = serverAuth
                subjectAltName = @alt_names
                [alt_names]
                DNS.1 = localhost 
                DNS.2 = www.mydomainname.com
                DNS.3 = mydomainname.com
                

                在 CMD 中创建证书

                 openssl req -x509 -nodes -days 365 -newkey rsa:2048  -keyout server.key -out server.crt -config req.cnf -sha256
                
                 cat server.crt server.key > server.pem
                

                覆盖开发证书

                 yourproject\node_modules\webpack-dev-server\ssl   with the **server.pem**
                

                在 chrome 设置中 -> 管理证书

                server.crt 导入到 Trusted Certification Authorizes 重启 chrome

                package.json

                 "scripts": {
                    "start": "set HTTPS=true&&react-scripts start",
                

                【讨论】:

                  【解决方案16】:

                  我刚刚在我的 chrome 中启用了allow-insecure-localhost 标志,仅此而已。

                  步骤。

                  1. 在您的 Chrome 选项卡中输入 chrome://flags
                  2. 搜索allow-insecure-localhost 标志并启用它。
                  3. 重新启动 chrome 浏览器。

                  现在您不会看到 https://localhost 站点的不安全警告。

                  【讨论】:

                    【解决方案17】:

                    2021 年 6 月 - Windows 10 - Chrome v91(简单)

                    遵循selfsignedcertificate.com 的证书生成说明:

                    示例域名:mydomain.local,将其替换为您的域名。

                    步骤 1) 生成密钥:

                    openssl genrsa -out mydomain.local.key 2048

                    步骤 2) 创建配置文件mydomain.local.conf,仅包含以下内容:

                    [req]
                    distinguished_name=req
                    [SAN]
                    subjectAltName=DNS:mydomain.local
                    

                    注意:在 subcjectAltName 中,您可以定义更多域(可选),例如:

                    subjectAltName=DNS:mydomain.local, DNS:*.mydomain.local, DNS:otherdomain.local, IP:192.168.1.10

                    第 3 步)创建证书:

                    openssl req -new -x509 -key mydomain.local.key -out mydomain.local.crt -days 3650 -subj /CN=mydomain.local -extensions SAN -config mydomain.local.conf

                    第 4 步)将证书添加到受信任的根证书颁发机构

                    右键单击 mydomain.local.crt 文件,从上下文菜单中选择 Install Certificate。在弹出窗口中选择Local Machine。下一个。选择Place all certificates in the following store。点击Browse。选择Trusted Root Certification Authorities。点击Ok, Next, Finish。重启 Chrome。

                    【讨论】:

                    • 这看起来很有希望(serverfault.com/a/1017093/119666 很有帮助),但它对我不起作用。在 Brave(基本上是 Chrome)中,我仍然得到:NET::ERR_CERT_AUTHORITY_INVALID Subject: sslip.io Issuer: sslip.io
                    【解决方案18】:

                    好的,假设您已经创建了一个“有效”的自签名证书。它可以在 chrome 版本 94 上正确安装。但是当您访问该站点时,您没有获得 ssl 锁并收到“不是有效的证书颁发机构”错误。事实上,它是一个有效的证书。但是,如果您没有正确浏览该站点,则会收到此错误。我的证书的 DNS 是 DNS1:TFDM,DNS2:TFDM.local,DNS3:172.31.42.251,DNS4:192.168.20.50。

                    我正在浏览 192.168.20.50,但它不安全(锁定)。问题是,证书适用于 DNS1:TFDM。所以我必须输入我的 /etc/hosts 文件 (centos7) 192.168.20.50 TFDM 进行解析 - 然后浏览 https://TFDM。 问题解决了。您必须正确浏览该站点。我以为它会在服务器端解决,但它必须在客户端解决。这很容易被忽视,如果其他一切都正确,这可能是您的问题。 压倒一切的安全性和 ssl 功能是自找麻烦,我不认为是一个合适的解决方案。如果应用正确并遵循 Chrome 不断变化的规则,自签名证书可以工作。

                    【讨论】:

                      猜你喜欢
                      • 2018-06-23
                      • 2017-04-18
                      • 1970-01-01
                      • 2022-10-17
                      • 2021-03-30
                      • 2018-10-02
                      • 1970-01-01
                      • 2015-12-25
                      • 2021-05-07
                      相关资源
                      最近更新 更多