2012-04-14 4 views
11

StartSSL証明書を使用してHTTPSサーバーを実行しようとすると、ヘアを分割しています。私は彼らからすべての必要なファイルを持って、私はcreateServer引数に渡すことによって、それらを使用します。StartSSL証明書を使用してMac OSX上のNode.jsでHTTPSを起動するとエラーが発生する

var options = 
{ 
    ca:  FS.readFileSync('sub.class1.server.ca.pem'), 
    key: FS.readFileSync('ssl.key'), 
    cert: FS.readFileSync('ssl.crt') 
}; 

そして、これは私が得たエラーです。

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line 
    at Object.createCredentials (crypto.js:87:31) 
    at HTTPSServer.Server (tls.js:914:28) 
    at HTTPSServer.Server (https.js:33:14) 
    at HTTPSServer.HTTPSServer (/Users/myUserName/node_modules/connect/lib/https.js:34:16) 
    at new HTTPSServer (/Users/myUserName/node_modules/express/lib/https.js:38:23) 
    at Object.createServer (/Users/myUserName/node_modules/express/lib/express.js:43:12) 
    at Object.<anonymous> (/Users/myUserName/Sites/node.js/https/app.js:12:36) 
    at Module._compile (module.js:441:26) 
    at Object..js (module.js:459:10) 
    at Module.load (module.js:348:31) 

おそらく私は証明書をPEMに変換する必要があると考えました。しかし、実行している:

openssl x509 -in ssl.crt -out ssl.der -outform DER 

を...なぜすべてのアイデア

unable to load certificate 
67304:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE 

私に同様のエラーを与えますか?

更新日:これはOSXでのみ発生します。私はUbuntuサーバー上で同じことを実行しようとしました。

答えて

7

私は同じ問題を抱えていました。私のマシン(macbook osx 10.7.3)では、ノードhttpsが自己署名証明書を使ってエラーなく実行できることを確認できます。特定のエラーがいずれかのファイルを見つけるカント、またはファイルに何もないことを意味していること

(あなたは空の文字列を渡すか、無効なファイルパスを使用してこれを確認することができます。)

を第一に、絶対パスを使用してみてください - 例えばFS.readFileSync(__ dirname + 'ssl.crt')。

またあなたの証明書とキーファイルを開くと、彼らは形式のデータが含まれていることを確認:「----- BEGIN」...など

はまたあなたのファイルは.certと.KEYている間ということに気づきますファイルは、拡張子が.pemの証明書ファイルとキーファイルを参照しています。私が理解から

http://nodejs.org/api/https.html

は、あまり差がないが、内容は私にかなり似て表示されますが、これらのものは、手間のかかることができます。 http://silas.sewell.org/blog/2010/06/03/node-js-https-ssl-server-example/から取ら

のopensslのx509 -in -req certrequest.csr -signkey privatekey.pem -out certificate.pem

:ここ

は.PEMファイルに.csrですファイルを変換するためのコマンドであります

3

私はこれと同じようにこの記事https://tootallnate.net/setting-up-free-ssl-on-your-node-serverに従ったと思います。同じ問題が発生しました。しかしStartComから取得したすべてのファイルを何回かチェックした後、誤ってANSIではなくUTF8として証明書と秘密鍵を保存していました。ファイルのエンコーディングをANSIに変更した後、node.jsはチャームのように動作し始めました:)