[解決済み] https ウェブサーバ用の .pem ファイルを作成する方法
質問
Node.js で Express フレームワークを使用して Web サーバーを作成しています。Web サーバーの接続に ssl を使用したいと思います。
httpsのWebサーバーを作成するコードは以下の通りです。
var app = express.createServer({
key: fs.readFileSync('./conf/key.pem'),
cert: fs.readFileSync('./conf/cert.pem')
});
module.exports = app;
質問です。expressで必要なkey.pemとcert.pemはどのように作成するのでしょうか?
どのように解決するのですか?
必要なファイルは、PEMエンコードされたSSL証明書と秘密鍵の2つです。PEMエンコードされた証明書と鍵は、Base64エンコードされたテキストで、開始/終了区切り記号は次のようになります。
-----BEGIN RSA PRIVATE KEY-----
のような開始/終了区切り文字を持つBase64エンコードされたテキストです。
SSL証明書を作るには、まず秘密鍵と証明書署名要求(CSR)(あなたの公開鍵も含む)を生成する必要があります。これは様々な方法で行うことができますが、ここではOpenSSLでの方法を説明します。
openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
これにより、2048ビットRSA秘密鍵と、プロンプトで入力するように選択したすべての情報を含むCSRを生成するための対話型プロンプトが入力されることになります。( 注:Common Nameは、サイトにアクセスするために使用するドメイン名を入れる場所です。 ) この後、通常このCSRを信頼できる認証局に提出し、認証局があなたの要求を検証したら、あなたは証明書を受け取ることになります。
証明書が信頼されることを気にしない場合 (通常、開発目的の場合)、自己署名証明書を作成することができます。これを行うには、ほとんど同じ行を使用できますが、2 つの追加パラメータを渡します。
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
これで、投稿したコードスニペットで使用できる証明書(10年間有効)とキーペアが得られます。
関連
-
[解決済み] エラーです。Cannot find module 'ejs'
-
[解決済み] node.js - リクエスト - "emitter.setMaxListeners() "はどのように?
-
[解決済み] node.jsはWebサーバと言えるのか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] .keyと.crtファイルから.pemファイルを取得する方法は?
-
[解決済み] Node.jsでHTTPSサーバーを作成する方法とは?
-
[解決済み】全てのブラウザで、Webページのキャッシュを制御するには?
-
[解決済み】ファイアウォール越しにHTTPSでGitHubにアクセスしようとすると、SSL証明書が拒否される。
-
[解決済み】基本的なHTMLビューをレンダリングしますか?
-
[解決済み] [Solved] javax.net.ssl.SSLHandshakeException の解決: sun.security.validator.ValidatorException: PKIX パスの構築に失敗しました エラー?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み] テスト
-
[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。
-
[解決済み】Express.js req.bodyが未定義です。
-
[解決済み】MongoDBでコレクションを日付で並べ替えるには?
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] Node.jsのホスト名/IPが証明書のaltnamesと一致しない
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] Json Web Token verify() return jwt malformed
-
[解決済み] ノードマータ予期せぬフィールド