[解決済み] ローカルホスト用の信頼できる自己署名入りSSL証明書を作成する(Express/Nodeで使用するため)
質問
ローカルホストで使用するための自己署名証明書を作成するための様々な指示に従おうとしています。命令のほとんどはIISのためのもののようですが、私はNodejs/Expressを使おうとしています。 証明書はインストールされますが、それは信頼されていないため、それらのどれも適切に動作しません。以下は、私が失敗したものを試してみました。
- ローカルホストの自己署名証明書を作成するにはどうすればよいですか?
- https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-nginx-for-ubuntu-12-04/
- http://blogs.developerforce.com/developer-relations/2011/05/generating-valid-self-signed-certificates.html
- http://www.robbagby.com/iis/self-signed-certificates-on-iis-7-the-easy-way-and-the-most-effective-way/
どなたか、こんなことができるワークフローを提供していただけませんか? 証明書のインストールはできるけど クローム(v32)でもIE(v10)でも証明書を信頼させることができないのですが。
EDIT: コメントで、問題は信頼されたcert-rootがないことだと示唆されました。 私はIE経由で証明書をインストールしましたが、まだ信頼されていません。
どうすればいいですか?
上記の回答は部分的なものでした。これを動作させるために多くの時間を費やしたので、正気の沙汰とは思えません。未来の自分へのメモ、ここに必要なものがあります。
Windows10で、Chrome65で作業しています。Firefoxはうまく動作しています。セキュリティ例外としてlocalhostを確認すれば、動作します。Chromeはダメです。
ステップ1.
という名前のフォルダをバックエンドに作成します。
security
.その中で作業します。
ステップ2.
という名前のリクエスト設定ファイルを作成します。
req.cnf
を以下の内容で作成しました(クレジットはこちらです。
アンシュル
)
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. ターミナルで security フォルダに移動し、次のコマンドを入力します。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.cnf -sha256
ステップ4.
を指定すると
security
フォルダを作成し、expressアプリで次のように実行します。(credit goes to @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.js
にアクセスしてください。
https://localhost:3000
.
この時点で、サーバーの設定は完了です。しかし、ブラウザには警告メッセージが表示されるはずです。
自己署名した証明書を、CAに信頼された認証局として、chrome/windows certificates storeに登録する必要があります。 (クロームではウィンドウズにも保存されます。)
ステップ6. chromeのDev Toolsを開き、Securityパネルを開き、View Certificateをクリックする。
ステップ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
証明書のエクスポートを完了しました。
ステップ11.
をクリックして
localhost.cer
という警告が表示されるまで、デフォルト値のまま「次へ」を何度もクリックします。
ステップ12
すべてを終了し、クロームを再起動します。その後
https://localhost:3000
が表示されるはずです。
<イグ
関連
-
[解決済み】Node.jsのエラーECONNRESETをデバッグするにはどうすればよいですか?
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み] Node.jsのホスト名/IPが証明書のaltnamesと一致しない
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
-
[解決済み] nvm は npm config の "prefix" オプションと互換性がありません。
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] ノード / エクスプレス EADDRINUSE、アドレスはすでに使用中です - サーバーを停止してください。
-
[解決済み] OpenSSLを使用して自己署名入りSSL証明書を生成する方法を教えてください。
-
[解決済み] node.jsのhttps.requestで無効な自己署名入りssl証明書を無視する?
-
[解決済み】自己署名証明書を持つWindowsでgitを使用して「unable to get local issuer certificate」を解決できない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラーです。EACCES: 権限が拒否されました、アクセス '/usr/local/lib/node_modules' 。
-
[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。
-
[解決済み】npx コマンドが見つかりません。
-
[解決済み】ブロックスコープの宣言は、ストリクトモード以外ではまだサポートされていません。
-
[解決済み】Passport.js - エラー: ユーザーのセッションへのシリアライズに失敗しました。
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] Npmエラー - Windows NT - 解決方法
-
[解決済み] ノードのバージョンを管理するためのnまたはnvm - 各バージョンのグローバルモジュールを保持することは良いアイデアですか?
-
[解決済み] 自己署名入りSSL証明書が無効 - "サブジェクトの代替名がありません".
-
[解決済み】自己署名付きlocalhost証明書をChromeが受け入れるようにする方法