上記の答えは部分的でした。私はこれを機能させるために多くの時間を費やしてきました、それは正気ではありません。私の将来の自分に注意してください、これはあなたがする必要があることです:
私はWindows 10とChrome 65で作業しています。Firefoxは適切に動作しています。ローカルホストをセキュリティ例外として確認するだけで機能します。Chromeは次のことを行いません。
ステップ1.バックエンドで、というフォルダーを作成しますsecurity
。その中で作業します。
ステップ2.req.cnf
次の内容で名前が付けられた要求構成ファイルを作成します(クレジットは@Anshulに移動します)
req.cnf:
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = Country initials like US, RO, GE
ST = State
L = Location
O = Organization Name
OU = Organizational Unit
CN = www.localhost.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.localhost.com
DNS.2 = localhost.com
DNS.3 = localhost
このフィールドの説明はこちらです。
手順3.端末のセキュリティフォルダーに移動し、次のコマンドを入力します。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.cnf -sha256
ステップ4.次に、security
フォルダーの外で、Expressアプリで次のようにします(クレジットは@Diego Melloに送られます)
backend
/security
/server.js
server.js:
const express = require('express')
const app = express()
const https = require('https')
const fs = require('fs')
const port = 3000
app.get('/', (req, res) => {
res.send("IT'S WORKING!")
})
const httpsOptions = {
key: fs.readFileSync('./security/cert.key'),
cert: fs.readFileSync('./security/cert.pem')
}
const server = https.createServer(httpsOptions, app)
.listen(port, () => {
console.log('server running at ' + port)
})
ステップ5.サーバーを起動し、https:// localhost:3000にnode server.js
移動します。
この時点で、サーバーのセットアップが完了しました。ただし、ブラウザには警告メッセージが表示されます。
自己署名証明書をCAの信頼できる認証局として、chrome / windows証明書ストアに登録する必要があります。(クロムはこれをウィンドウに保存します)
ステップ6. ChromeでDev Toolsを開き、[セキュリティ]パネルに移動して、[証明書の表示]をクリックします。
ステップ7. [詳細]パネルに移動し、[ファイルのコピー]をクリックします。次に、証明書のエクスポートウィザードが表示されたら、次のように[次へ]をクリックします。
ステップ8. DERエンコードをそのままにして、[次へ]をクリックし、を選択してBrowse
、デスクトップなどのアクセスしやすいフォルダーに置き、証明書に名前を付けますlocalhost.cer, then click Save and then Finish.
。デスクトップで証明書を確認できるはずです。
ステップ9.chrome://settings/
URLボックスに挿入して開きます。下にあるをクリックしAdvanced / Advanced Options
、下にスクロールしてを見つけますManage Certificates
。
ステップ10. Trusted Root Certification Authoritiesパネルに移動し、インポートをクリックします。
localhost.cer
手順8でエクスポートした証明書をインポートします。
ステップ11. [参照]をクリックして、を見つけ、localhost.cer
デフォルト値のままにします。次に、何度もクリックします。この警告が表示されるまで、[はい]をクリックします。
ステップ12.すべてを閉じて、Chromeを再起動します。次に、移動すると、https://localhost:3000
次のようになります。