99

I'm using the Express framework in Node.js to create a web server. I want to use ssl for the web server's connection.

The code to create the https web server is as below.

var app = express.createServer({
  key: fs.readFileSync('./conf/key.pem'),
  cert: fs.readFileSync('./conf/cert.pem')
});
module.exports = app;

Question: How to create the key.pem and cert.pem required by express?

4

3 に答える 3

211

必要な 2 つのファイルは、PEM でエンコードされた SSL 証明書と秘密鍵です。PEM でエンコードされた証明書とキーは、Base64 でエンコードされたテキストであり、開始/終了の区切り文字は-----BEGIN RSA PRIVATE KEY-----類似しています。

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

于 2012-10-16T03:34:11.163 に答える