【问题标题】:Create React App: HTTPS and self signed certificate创建 React App:HTTPS 和自签名证书
【发布时间】:2021-01-11 13:00:20
【问题描述】:

我正在尝试以 HTTPS 模式运行使用 create-react-app 模板创建的 react 应用:

set SSL_CRT_FILE=.cert/server.pfx&&set HTTPS=true&&npm start

我使用 Power Shell 创建了此证书。尽管有很多解释如何使用 OpenSSL 创建的证书运行 react 应用程序,但这对我来说不是一个选项,因为我不允许在我的机器上安装 OpenSSL。

证书创建:

$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "localhost" -FriendlyName "MyCert" -NotAfter (Get-Date).AddYears(10)
$pwd = ConvertTo-SecureString -String `my_password' -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath C:\my_react_app\.cert\server.pfx -Password $pwd

然后我将此证书导入个人证书并将其复制到受信任的根证书颁发机构。但是当我在浏览器中打开项目时,我得到了NET::ERR_CERT_AUTHORITY_INVALID

我做错了什么?

附言

导出为 .cer 文件也不起作用:

Export-Certificate -Cert $cert -FilePath C:\my_react_app\.cert\server.cer

【问题讨论】:

    标签: ssl https create-react-app self-signed-certificate


    【解决方案1】:

    PowerShell 中的以下命令(以管理员身份运行)将创建根证书及其关联的可信证书:

    1.我们创建一个新的根可信证书:

    $rootCert = New-SelfSignedCertificate -Subject 'CN=TestRootCA,O=TestRootCA,OU=TestRootCA' -KeyExportPolicy Exportable -KeyUsage CertSign,CRLSign,DigitalSignature -KeyLength 2048 -KeyUsageProperty All -KeyAlgorithm 'RSA' -HashAlgorithm 'SHA256'  -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider'
    

    2.我们从根可信证书链创建证书:

    New-SelfSignedCertificate -DnsName "localhost" -FriendlyName "MyCert" -CertStoreLocation "cert:\LocalMachine\My" -Signer $rootCert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1") -Provider "Microsoft Strong Cryptographic Provider" -HashAlgorithm "SHA256" -NotAfter (Get-Date).AddYears(10)
    

    3.我们复制上一条命令返回的指纹

    4.(如果需要)我们删除最后一个关联 ip/port/cert:

    netsh http delete sslcert ipport=0.0.0.0:3002
    

    5.我们将新证书与任何 ip 和您的端口相关联,例如 3002(appid 值无关紧要,是任何有效的 guid):

    netsh http add sslcert ipport=0.0.0.0:3002 appid='{214124cd-d05b-4309-9af9-9caa44b2b74a}' certhash=here_the_copied_thumbprint
    

    6.现在,您必须将TestRootCAPersonal/Certificates 文件夹拖放到Trusted Root Certification Authorities/Certificates

    这些命令还解决了 Google Chrome 稍后返回的错误 ERR_CERT_WEAK_SIGNATURE_ALGORITHM,因为证书是使用 SHA256 而不是 SHA1 创建的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-07
      • 2018-11-26
      • 2017-09-17
      • 1970-01-01
      • 2019-03-21
      • 2013-02-05
      相关资源
      最近更新 更多