1. ホーム
  2. node.js

[解決済み] https ウェブサーバ用の .pem ファイルを作成する方法

2023-02-04 03:04:34

質問

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年間有効)とキーペアが得られます。