ローカルホスト用の信頼できる自己署名SSL証明書を作成する(Express/Nodeで使用する) 質問する

ローカルホスト用の信頼できる自己署名SSL証明書を作成する(Express/Nodeで使用する) 質問する

ローカルホストで使用する自己署名証明書を作成するためのさまざまな手順に従おうとしています。手順のほとんどは IIS 用のようですが、Nodejs/Express を使用しようとしています。証明書はインストールされますが、信頼されていないため、どれも正常に機能しません。私が試して失敗したものは次のとおりです。

これを実行できるワークフローを提供してくれる人はいますか?証明書をインストールできますが、Chrome (v32) でも IE (v10) でも証明書を信頼できません。

編集: コメントで、問題は信頼された証明書ルートがないことであると示唆されました。IE 経由で証明書をインストールしましたが、まだ信頼されていません。

ベストアンサー1

上記の回答は部分的なものでした。これを機能させるのに非常に長い時間を費やしました。これは異常です。将来の自分へのメモとして、必要なことは次のとおりです。

私は Windows 10 で Chrome 65 を使用しています。Firefox は正常に動作しています。セキュリティ例外として localhost を確認するだけで動作します。Chrome では動作しません。

ステップ1。バックエンドに というフォルダを作成しますsecurity。その中で作業します。

ステップ2。次の内容を含む名前のリクエスト設定ファイルを作成しますreq.cnf(出典:アンシュル

要求.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。サーバーを起動しnode server.jshttps://localhost:3000

この時点でサーバーはセットアップされています。ただし、ブラウザに警告メッセージが表示されます。

自己署名証明書を、CA 信頼証明機関として Chrome/Windows 証明書ストアに登録する必要があります。(Chrome はこれを Windows にも保存します)

ステップ6。Chrome で開発ツールを開き、セキュリティ パネルに移動して、証明書の表示をクリックします。ここに画像の説明を入力してください

ステップ7。詳細パネルに移動し、「ファイルのコピー」をクリックし、証明書のエクスポート ウィザードが表示されたら、以下のように「次へ」をクリックします。

詳細に移動 - ファイルをコピー - エクスポートウィザードの次へ

ステップ8。DER エンコーディングのままにして、次へをクリックし、 を選択してBrowse、デスクトップなどのアクセスしやすいフォルダーに配置し、証明書に という名前を付けますlocalhost.cer, then click Save and then Finish.。デスクトップで証明書を確認できるはずです。

ステップ9。chrome://settings/URL ボックスに入力して開きます。下にある をクリックしAdvanced / Advanced Options、下にスクロールして を見つけますManage Certificates

証明書の管理を選択

ステップ10。「信頼されたルート証明機関」パネルに移動し、「インポート」をクリックします。

信頼されたルート証明機関パネルに移動し、インポートをクリックします。

localhost.cer手順 8 でエクスポートが完了した証明書をインポートします。

ステップ11。[参照] をクリックし、 を見つけてlocalhost.cer、デフォルト値のままにして、[次へ] を何度かクリックします。この警告が表示されるまで、[はい] をクリックします。

セキュリティ例外を確認する

ステップ12。すべてを閉じて、Chrome を再起動します。次に、https://localhost:3000次のように表示されます。緑が大好き

おすすめ記事