2016-10-06 10 views
3

私はherokuの私のレールアプリで暗号化を使用する方法を理解しようとしています。Rails 5、Heroku with SSLを暗号化しよう - 設定が正しく設定されていない

私は、このプロセス(letsencrypt-plugin)に役立つように設計されているように見えますが、これを得ることができなかったので、これらの宝石が推奨するすべてのインストール手順を削除しました。

今、私はここにセットチュートリアルの意味を理解しようとしているに戻ってきた:私は遠く届かない

http://collectiveidea.com/blog/archives/2016/01/12/lets-encrypt-with-a-rails-app-on-heroku/

https://medium.com/should-designers-code/how-to-set-up-ssl-with-lets-encrypt-on-heroku-for-free-266c185630db#.h9vjoxboq

私はこれを再びしようとしている:https://medium.com/should-designers-code/how-to-set-up-ssl-with-lets-encrypt-on-heroku-for-free-266c185630db#.h9vjoxboq

を現時点では、エラーメッセージが言う:私は私のapplication.ymlで「第2のランダム文字列」とLETS_ENCRYPT_SECONDを保存した

Type: unauthorized 
    Detail: The key authorization file from the server did not match 
    this challenge 
    [first random string.second random string] 
    != [#{params[:id]}.ENV["LETS_ENCRYPT_SECOND"]] 

    To fix these errors, please make sure that your domain name was 
    entered correctly and the DNS A record(s) for that domain 
    contain(s) the right IP address. 

私のDNSにはAレコードがありません。私はherokuでホストします - それはAレコードまたはIPアドレスを与えません。私のドメインは123-regに登録されています。

ます。mkdir -p /tmp/certbot/public_html/.well-known/acme-challenge

CDを/ tmp/certbot/public_htmlの

私は命令のこの部分を理解していません

のprintf "%s" の最初のランダムstring.secondランダムな文字列> .well知ら/ ACMEチャレンジ/最初のランダムな文字列に一度だけ、サーバーごと

実行:

$(C ommand -v python2 ||コマンド-v python2.7 ||コマンド-vのpython2.6)-c "輸入BaseHTTPServer、SimpleHTTPServer; \ S = BaseHTTPServer.HTTPServer(( ''、80)、SimpleHTTPServer.SimpleHTTPRequestHandler); \ s.serve_forever()" \

I上記の4つのコマンドのそれぞれを端末に入れて、それから私が完了する必要があることを意味すると認識します。私は何度もそれをやったが、私はこれでどこにも行きません。

これを設定する方法については、誰でも助言できます。私は立ち往生している。私は上記のガイドに従うことをしようとして作成されたすべての設定を削除し、私が実行しようletsencrypt_pluginの

は現在、これらの設定がすべて設定されている宝石しかし、再び試してみました

UPDATE rake letsencrypt_plugin、私は言うメッセージ:

チャレンジの確認に失敗しました!エラー:urn:acme:error:unknownHost:www.exampleで有効なIPアドレスが見つかりません。com

私は現在、私のカスタムドメイン名をletsencrypt_plugin.ymlファイルに入れるかどうか、またはそこに自分のカスタムドメイン名のheroku appエイリアス名を書くはずかどうかは分かりません。

また、このアプリは英雄でホストされているため、IPアドレスはありません。私のDNS設定にはAレコードが全くありません(IPアドレスなし)。

FURTHER UPDATE

私は完全に新しいレール5のアプリを作りました。私はそれを英雄に置いた。私はlet encrypt_pluginをもう一度試しました。

heroku run rake letsencrypt_plugin 
Running rake letsencrypt_plugin on ⬢ ancient-octopus-78709... up, run.6780 (Hobby) 
I, [2016-10-17T07:59:13.985385 #3] INFO -- : Trying to register at Let's Encrypt service... 
I, [2016-10-17T07:59:13.985480 #3] INFO -- : Loading private key... 
I, [2016-10-17T07:59:14.255357 #3] INFO -- : Acme::Client::Error::Malformed - Registration key is already in use 
I, [2016-10-17T07:59:14.256579 #3] INFO -- : Already registered. 
I, [2016-10-17T07:59:14.256646 #3] INFO -- : Sending authorization request for: www..com... 
I, [2016-10-17T07:59:14.504527 #3] INFO -- : Storing challenge information... 
I, [2016-10-17T07:59:16.688404 #3] INFO -- : Waiting for challenge status... 
E, [2016-10-17T07:59:18.456415 #3] ERROR -- : Challenge verification failed! Error: urn:acme:error:unauthorized: Invalid response from http://www..com/.well-known/acme-challenge/eAniFLfG_3t5HrD6zbtppzWWYz1Ay76r0GaFHQ62GLI: "<!DOCTYPE html> 


We're sorry, but something went wrong (500) 

答えて

1

私は最近、あなたが投稿したlinksのいずれかを使用してheroku (python)上でSSLを実装しました:今回は、私が言うエラーが出ます。私にプロセスを理解させてください。

はまず

  • あなたのサイトのための独自のドメイン名を持っているか、Herokuの生成されたドメインを使用していますか?上記のすべてのリンクはカスタムドメイン名を持つサイトのためのもの、ない Herokuのデフォルトのドメイン名の[name-of-app].herokuapp.com
  • 独自のドメイン名は、手順に従っ持つために、あなたのカスタムドメイン名の設定は、上記のリンクをたどっていhere
  • 一つを説明example.com--your-domain--name.com

に置き換えると、あなたが今、あなたはでアクセスできるサイトを持っていることを上記のプロセス

をやった後、私はより多くを説明させていただきますあなたのレールのアプリのルート.well-known/acme-challengeでURLを開く必要がheroku

  • 上でホストされています。一度それを開き、あなたのレールアプリを再展開すると、URL http://myexample.com/.well-known/acme-challengeに行くことができるはずです。今のところ、これは内容のない空白のページを表示します。
  • 次に、入力したドメイン名で上記のリンクに指定されたSSL証明書を手動で生成します。 ya6k1edW38z.ebThgg67ggbb...

ここに重要な部分があります。これは、あなたがSSL証明書を生成しているドメインの実際の所有者であることを暗号化する方法です。それは.well-known/acme-challengeのための出力として、あなたに本当にランダムで複雑なテキストを与え、テキスト形式でこのトークンをレンダリングするこの

  • を達成するために、ドメインyour-domain.com

    上の特定のルート.well-known/acme-challengeに表示するように要求されますルート。コード例については上のリンクを参照してください

  • これらの変更でアプリケーションを再デプロイ
  • http://myexample.com/.well-known/acme-challengeを手動で確認してください。上記の手順で手作業で作成したテキストが表示されます。

certbotの作成プロセスに進みます。これにより、ドメインの証明書が作成されます。証明書を入手したら、heroku sslの設定に追加してください。following this link

+0

HI - はい私はexample.comというカスタムドメイン名を持っています。ドメイン名にdawn CNAMEレコードがあります。このレコードは、私のアプリケーション用に生成されたherokuの名前を指しています。 – Mel

+0

私が暗号化設定を設定するとき、私はmyexample.comドメイン名を使用しています。 – Mel

+0

@Mel私の編集した回答をチェックし、証明書を生成できるかどうかを知らせてください –

関連する問題