5

Heroku が secure.mydomain.com に対して受け入れる ssl 証明書の生成に問題があります。DNSimple、Cedar Stack を使用しており、こちらの手順に従っています: https://devcenter.heroku.com/articles/ssl-certificate

  1. DNSimple から server.key と server.orig.crt をコピーします
  2. でルート CA 証明書を取得する$ curl https://knowledge.rapidssl.com/library/VERISIGN/ALL_OTHER/RapidSSL%20Intermediate/RapidSSL_CA_bundle.pem > rapidssl_bundle.pem
  3. で1つのファイルに連結しますcat server.orig.crt rapidssl_bundle.pem > server.crt

これで、server.key と server.orig.crt ファイルができました。これを Heroku にアップロードしようとしました$ heroku certs:add server.crt server.key。これにより、エラーが発生します

Key could not be read since it's protected by a passphrase.

上記のドキュメントでは、server.key ファイルからパスフレーズを削除することについては何も言及していません。だから私は掘り下げて、ここでドキュメントを見つけました: https://devcenter.heroku.com/articles/ssl#customdomain-ssl . 上記の #1 と #2 の間でこれらのコマンドを実行しています。

1b.$ mv server.key server.orig.key

1c。$ openssl rsa -in server.orig.key -out server.key

ただし、これによりエラーが発生します

unable to load Private Key
47930:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-47/src/crypto/pem/pem_lib.c:648:Expecting: ANY PRIVATE KEY

これは、秘密鍵が見つからないことを意味していると思われます。

ここで何が問題なのか知っている人はいますか?これは Heroku の問題ですか、それとも openssl の問題 (または DNSimple の問題) ですか?

4

5 に答える 5

8

DNSimple と RapidSSL を使用して Heroku アプリに SSL 証明書をインストールするというほぼ同じ問題に非常に苦労しました。同様の問題を抱えている人がこの応答に遭遇した場合に備えて、ここに私の解決策を投稿したいと思います。

SO と Heroku dev center のどこからでも指示に従って DNSimple と RapidSSL を介して証明書をインストールしましたが、毎回次のコマンドで証明書を追加しようとしました。

$ heroku certs:add server.crt bundle.pem server.key

何をしても、次のエラーが発生しました。

$ Adding SSL Endpoint to mysite... failed
 !    Key could not be read since it's protected by a passphrase.
 !    Read instructions on how to remove the passphrase on:
 !    http://www.madboa.com/geek/openssl/#key-removepass`

キーにパスフレーズがないことはわかっていましたが (そのプロセスを複数回行ったため)、それでもパスフレーズを追加したくありませんでした。どちらがクリンチャーだったのかはわかりませんが、最終的に機能するようになった2つのことを行いました。

最初に、Apache、Plesk、および CPA ボックスの下にある適切な PEM ファイルを、RapidSSL 電子メール リンクから中間​​証明書にダウンロードしたことを確認しました。

2 つ目は、 https ://devcenter.heroku.com/articles/heroku-command#installing-the-heroku-cli の手順に従って、Heroku ツールベルトのインストールを確認することでした。

私はまだ宝石を使用していたことが判明し、heroku-toolbelt に到達するまでアンインストールする必要がありました。その後、証明書を再度追加してみました。

于 2013-05-16T03:27:50.383 に答える
2

この問題に何日も苦労しました!このスレッドに出くわし、アップグレードのアドバイスに従うまで。私がしなければならなかった最初のことは

gem アンインストール heroku --all

stackoverflowで読んだ別の投稿のため、実行可能ファイルを保持する質問に「はい」と答えました。次にhttps://toolbelt.herokuapp.com/にアクセスし、ツールベルトをインストールしました (heroku --version がインストール済みと表示していたにもかかわらず)。heroku-toolbelt 2.39.0 にアップグレードしました。次のコマンドを再試行したところ、うまくいきました:

heroku certs: cert.cer bundle.pem server.key を追加

今夜はやっと眠れるかも(笑)

于 2013-07-11T04:53:49.077 に答える
1

これは本当にばかげていますが、私が知る限り、Mac OS で TextEdit を使用して最初の server.key および server.orig.crt ファイルを保存する際に問題がありました。

代わりに TextMate を使用しましたが、すべて正常に動作しています。

于 2012-11-09T08:59:42.260 に答える