さくらVPSのnginxを使ったリバースプロキシ on Docker上でLet's SSL証明書ファイルの適用方法がわかりません

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 142

darumausagi

score 10

サイト運営を目標に現在勉強中で、現在、さくらのVPSのOS標準インストールでDockerComposeのスタートアップスクリプトでOSをインストールしました。
ひとまず基本を、ということで、下記のサイト通りにやってみようとしています。
https://qiita.com/ka2asd/items/372d30be64c57a8a81b1 

Dockerに苦戦しながら、ご助力をいただいてなんとかブラウザで表示できるようになりましたが、
httpでアクセスはできたものの、httpsでのアクセスができません。

証明書に問題があるのは理解していたため、まずは下記のページを参考に、
ホスト側のOSでcerbotをインストールして、証明書を発行しました。
https://qiita.com/IZUMIRU/items/230c4c9de6b51b58b000

<発行結果>
ls -l /etc/letsencrypt/live/hogehoge.com
lrwxrwxrwx 1 root root  39  8月 14 10:18 cert.pem -> ../../archive/hogehoge.com/cert1.pem
lrwxrwxrwx 1 root root  40  8月 14 10:18 chain.pem -> ../../archive/hogehoge.com/chain1.pem
lrwxrwxrwx 1 root root  44  8月 14 10:18 fullchain.pem -> ../../archive/hogehoge.com/fullchain1.pem
lrwxrwxrwx 1 root root  42  8月 14 10:18 privkey.pem -> ../../archive/hogehoge.com/privkey1.pem

証明書発行まではできていると思うのですが、
https://qiita.com/ka2asd/items/372d30be64c57a8a81b1
上記ページの通りにhttpsでアクセスするためにどうすればよいのか、調べてはみたもののなかなか理解できず、
何卒ご教授いただければ幸いです。
(そもそもホスト側ではなく、docker側でcerbotを実行する必要がある、など)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

結論から言うと、根本的には作成した証明書に不備があったのが最たる原因だったように思います。

当初、下記コマンドで証明書を発行していましたが、うまくいきませんでした。

certbot certonly --manual \
--server https://acme-v02.api.letsencrypt.org/directory \
--preferred-challenges dns-01 \
-d *.hogehoge.com \
-m <メールアドレス> \
--agree-tos \
--manual-public-ip-logging-ok

下記コマンドで再発行したところ、うまくいきました。

certbot certonly --manual \
--server https://acme-v02.api.letsencrypt.org/directory \
--preferred-challenges dns-01 \
-d hogehoge.com \
-d *.hogehoge.com \
-m <メールアドレス> \
--agree-tos \
--manual-public-ip-logging-ok

「ワイルドカードのみの指定だと、ベースドメイン(サブドメインなし)が有効にならない」というところをきちんと認識しておらず、そのためにうまくいかなかったようです。

お騒がせしてしまい、申し訳ありませんでした。
ご回答いただき、本当にありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

https://qiita.com/HeRo/items/f9eb8d8a08d4d5b63ee9#nginx%E3%81%AE%E8%A8%AD%E5%AE%9A

この辺を参考に、Dockerへのリバースプロキシの設定にSSLの項目を足せばよいのかと。
ただし、nginxとdocker間はhttp通信になるかと思います

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/08/14 22:55

    ごちゃごちゃ本当に取り留めもなくてすみません…。
    もし、まだお付き合いいただけるようでしたら、最初にアドバイスいただけました、
    Dockerへのリバースプロキシの設定にSSLの項目を足す方法について教えていただけないでしょうか。
    ・何というファイル名(server.confとかproxy.confとか…)に記載するのか
    ・上記以外にdockerfileになにか記載する必要があるのか
    など
    何卒よろしくお願いいたします。

    キャンセル

  • 2019/08/14 23:56

    最初に添付したURLの通り
    listen 443 sslからの行を足せばできるのではないか、と思います
    (場所はservernameが一致する場所にかけば良いと思います)

    また、SSLをかけたいだけの目的であればCloudflareで外からSSLかけた方が最近は手軽ですね
    (更新とか考えなくていいし)

    キャンセル

  • 2019/08/15 11:21

    回答いただきありがとうございます。
    足す内容と行を足すというのは理解している(つもりな)のですが、そのためにどうすればよいのかというのがわからないな、と…(どんな設定ファイルに書くのか、それをどこに配置するのか、dockerfileでそのためにディレクトリ?など指定しなければいけないのかなど…)。
    ひとまず、添付いただいた記事の通りの内容を、server.confとdefault.confに記載してdockerを再起動してみましたが、うまくいかずでしたので…。
    でも、ご指摘通り、SSLかけたいだけというのがほとんどなので、ウェブアクセラレータとかで、SSLを適用する方法を考えた方がいいかもしれません。このままではできる気配を感じないので…。せっかくアドバイスをいただいたのに生かせるほどに理解が及ばずで申し訳ないです。
    お付き合いいただきありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.22%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる
  • トップ
  • nginxに関する質問
  • さくらVPSのnginxを使ったリバースプロキシ on Docker上でLet's SSL証明書ファイルの適用方法がわかりません