skillup

技術ブログ

サーバー・ネットワーク

herokuでのLet’s Encrypt設定

投稿日:2020年4月29日 更新日:

herokuで運用しているアプリでhttps設定(Let’s Encrypt)をしたいという要望があり、調査、設定をすることに。

当然herokuでなくても大丈夫です。

過去に行ったhttps設定に関して

SSLに関して(主にオレオレSSLの作成方法など)

SSLの設定に関して

Let’s Encryptとは

通常SSLの証明証発行ではお金がかかることが多いのですが、Let’s Encryptでは無料で設置ができるようです。

無料SSL証明書のLet’s Encryptとは?

ローカルのmacで鍵、証明書を作成でき、これをサーバーに配置すればOKかと思います。

デメリットとしては更新頻度がやや短い(3ヶ月ごと?)ということでしょうか。プログラムで自動化してしまえば大丈夫っぽいですが。

作成方法

もうほとんどここのリンクに書かれていることを実行すれば大丈夫かと思いました。

MacOS に CertBot を入れて Let’s Encrypt 証明書を作ってみる

わかりやすすぎ・・

手順1 CertBotのインストール

証明書を作成するために、CertBotというソフトをインストールする必要があります。

下記コマンドでそのまま入れられます。

手順2 証明書発行

ソフトがインストールできたら実際に証明書を作成します。

sudo certbot certonly --manual --domain  example.herokuapp.com

ここでインストールとウィザードが始まります。詳細は先ほどのリンクをみた方がいいでしょう(汗)

最後に下記のようなメッセージが出て実際に鍵が作られますが、ここでEnterを押してはダメです。

これは要するに http://example.herokuapp.com/.well-known/acme-challenge/foofoofoo というurlにアクセスをした時にhogehogehogehogeというレスポンスを返してね、という指示ですので、アプリ側の設定が必要になります。

(注:実はherokuの場合このurl自体にアクセスをさせるのが大変でした・・・
参考リンク herokuでのhttpd.conf設定 )

まだ準備もしていないうちにEnterを押しても当然期待通りのレスポンスはかえってきませんので、エラーになります。

ルーティングでも実際にファイルをおくでもいいのですが、上記URLでアクセスした時に上記の文字列を返すような処理を入れましょう。

うまく行けば上記のように鍵が生成されています。

手順3 鍵配置

実際に上記のディレクトリ /etc/letsencrypt/live/ に行くとサーバ証明証と中間CA証明書の結合( /etc/letsencrypt/live/example.herokuapp.com/fullchain.pem )と秘密鍵( /etc/letsencrypt/live/example.herokuapp.com/privkey.pem )がありますので(実際にはシンボリックリンクですので本来のパスは /etc/letsencrypt/archive/example.herokuapp.com/ 直下です。)、これらをサーバーに配置して通常の設置(参照:SSLの設定に関して)あげれば大丈夫かと思います。

ちなみにherokuだとサーバーへのアップが直接できないため下記のようにコマンドであげます。

(* fullchain.pem → cert.pem にリネームしてます。)

heroku certs:add cert.pem privkey.pem

Freeプランだとできないので注意しましょう・・

LaravelでHerokuにSSLを設定した話。

Let’s Encryptで取得した証明書をHerokuに反映させてみた

オチ

実は私が触っていた案件はドメインが独自ドメインではなく、 http://example.herokuapp.comのようなherokuディフォルトのドメインだったため、すでにhttps設定はされていました。

四苦八苦して設定を試していたところ未設定のはずなのにhttpsが通ったんで、ブラウザを調べてみましたが、証明証がすでに発行されておりました。

不要だったわけですね・・・。

よく考えりゃ、herokuのドメインなので自体は当然してますよね・・・

-サーバー・ネットワーク
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Sambaインストール

オフィスでサーバーをたてていますが、普段使っているメインのPCとのファイルのやりとりをSFTPクライアントなどでするのが面倒くさいので、同期させるためにSambaをインストールしました。 環境ですが、 …

no image

VPSのCentOS上にVirtualBox+Vagrantをインストール

普段使っているPCにVirtualBox+Vagrantをいれることはあったんですが、VPS上のCentOSに仮想環境を入れたいとの要件があり、試してみました。 結論からすると結局できなかったんですが …

no image

GitLabのWebhook

前回の記事でGitLabのCI/CDを特集しましたが、実は今回やりたかったのはそこまで大掛かりなCIではなく、プッシュ時にオートマージ、オートデプロイなどでしたので、もっと簡単な仕組みでできます。 例 …

no image

シェルの基礎+ユーザー切り替え関連

雑誌を見ていたらシェルの特集があったので、ちょっとメモリます。 補強したいところのみ要点をチェック。 Contents0.1 実行パスについて0.2 ビルドインコマンド0.3 シェル変数・環境変数0. …

no image

vimの小ネタ(主にテキスト置換系に関して)

前回に引き続き、またまたvimの小ネタなど Contents1 マクロ2 単純な置換3 改行系の置換4 一括置換 マクロ エディタ上である動作を記録させておきたい場合、q+任意の文字(例えばa)+任意 …