2016-09-20 4 views
1

ノードサーバーでSSLを設定する方法について大変混乱しています。ノード/エクスプレスにRapidSSL証明書をインストールする

私はこれまで行う行っていることである:私の急行に

テストのために私のローカルマシン上での鍵と証明書署名-Create自己ローカル

-Addedこのコードは

var privateKey = fs.readFileSync('privatekey.pem', 'utf8'); 
var certificate = fs.readFileSync('certificate.pem', 'utf8'); 
https.createServer({ 
    key: privateKey, 
    cert: certificate 
}, app).listen(port); 
を設定しました

これはローカルで問題ありません(ブラウザエラーが発生しますが、自己署名されているため信頼できる機関ではないことがわかります)。

今実際の証明書を使用して展開したいので、RapidSSLから購入しました。彼らは、電子メールに平文で、私は2つのキーを送信し、両方の形式で

-----BEGIN CERTIFICATE----- 
blah 
-----END CERTIFICATE----- 

一つはWeb server CERTIFICATE、他のINTERMEDIATE CAをラベル付けされます。

私はprodPrivatekey.pem(この質問のために)という名前の新しいファイルにWeb server CERTIFICATEの内容をコピーして、私はprodCertificate.pemINTERMEDIATE CAを移動しました。次に、上記のコードのパスを置き換えました。


まず、この行動措置が正しいかどうか教えてください。私はSSL証明書の内部動作についてほとんど何も知らないと仮定します。

2番目に、この設定でエラーが発生した場合は、Error: error:0906D06C:PEM routines:PEM_read_bio:no start lineです。私が見つけることができる唯一の助けはこの質問Node.js https pem error: routines:PEM_read_bio:no start lineですが、ここでの助けは自己署名証明書に関連しているようです。

ありがとうございました!

答えて

1
var privateKey = fs.readFileSync('privatekey.pem', 'utf8'); 

privateKeyあなた秘密鍵でなければなりません。あなたはRapidSSLにこれを渡したり、これを受け取ったりしませんでした。

var certificate = fs.readFileSync('certificate.pem', 'utf8'); 

certificate 1つのRapidSSLのはINTERMEDIATE CAを残しWebサーバー証明書

をラベル付けしている必要があります。これは中間証明書です(あなたとRapidSSLのルート証明書の間にあります)。あなたのアプリにそれを含めなければならない場合は、Androidのブラウザなどの特定のブラウザに「信頼できない証明書」などのエラーが表示されます。これが動作し、あなたのサイトが公開されている場合は、どうかを確認するために、このようなSSL Labs Server Testなどのオンラインスキャナを使用して、サイトのSSL構成をテストしたら

var intermediateCertificate = fs.readFileSync('intermediate.pem', 'utf8'); 
https.createServer({ 
    key: privateKey, 
    cert: certificate, 
    ca: [ intermediateCertificate ] 
}, app).listen(port); 

:あなたの設定に含める

、あなたはこのような何かをするだろうあなたのSSL設定は安全です(スコアAまたはA +)。実行しているノードのバージョンによっては、デフォルトのセキュリティが十分でない可能性があります。

+1

ご協力いただきありがとうございます!あなたは粘着した穴の中から私を連れてきました - そして、私はSSLをもっと良く理解しています!同様の状況にある人は、証明書を再発行するためにRapidSSLを入手しなければなりませんでした(https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&id=SO5757を参照)。私のCSR(openssl req -newkey rsa:2048 -nodes -keyout ssl/prod/domain.key -out ssl/prod/domain.csrコマンドを実行して作成したもの)を使用してください。次に、私の明示的な設定では、その最後のコマンド( 'domain.key')で作成された秘密鍵と再発行された証明書 –

関連する問題