如何解决创建React App:HTTPS和自签名证书
我正在尝试在HTTPS模式下运行使用create-react-app模板创建的React应用:
set SSL_CRT_FILE=.cert/server.pfx&&set HTTPS=true&&npm start
我使用Power Shell创建了此证书。尽管有很多解释说明如何使用使用OpenSSL创建的证书运行react app,但由于不允许我在计算机上安装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
我做错了什么?
p.s。
导出为.cer文件也不起作用:
Export-Certificate -Cert $cert -FilePath C:\my_react_app\.cert\server.cer
解决方法
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。。现在,您必须将TestRootCA
从Personal/Certificates
文件夹拖放到Trusted Root Certification Authorities/Certificates
。
这些命令还解决了Google Chrome稍后返回的错误 ERR_CERT_WEAK_SIGNATURE_ALGORITHM ,因为证书是使用SHA256而不是SHA1创建的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。