質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

965閲覧

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

darumausagi

総合スコア18

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2019/08/14 02: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を実行する必要がある、など)

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

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

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

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

投稿2019/08/25 07:35

darumausagi

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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 02:33

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

darumausagi

2019/08/14 03:58

回答いただきありがとうございます。 言葉足らずで申し訳ありません。設定ファイルの変更の他に、作成された証明書をどこに配置したらよいのか、どこに配置すべきものなのか、もしくは設定のみなのか、という点が最もわからず、ご教授いただきたい点でした。 https://qiita.com/ka2asd/items/372d30be64c57a8a81b1にて記載のある、 mydomain.com.crt、mydomain.com.keyというのは、上記の証明書をリネームして配置するものなのか(仮にリネームするとしたら対象はどれなのか)、どういうものなのか、というのがよくわからず…。 調べれば調べるほど頭の中が散らかってしまってまとまらず、分かりづらい質問で申し訳ありません。 ご存知でしたら、ご教授いただければ幸いです。
mikkame

2019/08/14 04:10

証明書は公開dirになければcertbotが更新しに来るはずなので場所は動かさない方がいいでしょう
mikkame

2019/08/14 04:11

というかcertbotって自動的にnginxの設定までやってくれなかったっけ・・・?
darumausagi

2019/08/14 13:51 編集

ご回答ありがとうございます。貴重なお時間を割いていただきありがとうございます。すみません。 …色々試してみましたが、うまくいきませんでした。そのうち頭の中がごちゃごちゃして結局どうすればよいの…と迷子状態で途方にくれています。dockerもさっぱりなら、Nginxもまだまだ初心者というのも大きいのだと思います…(Linux周りの操作とLAMPの触りとHTMLの知識しかなく…)。 cerbotについては、ドメイン認証(dns-01)で、取得したものなのですが、自動的にnginxの設定まで実施してくれるものなのでしょうか??(やり方が全然わかっていませんが、ドメイン認証でAPIによる自動更新(TXTレコード)の書き換えをしたいな…という目標があり、ひとまずドメイン認証で取得してみました) dockerのイメージで、letsencryptの証明書を自動で取得できるイメージもある(と認識している)のですがそちらが最初うまくいかなかったので、まずはシンプルな構成ができてから!と参考ページの想定結果を実施したいと考えていて、そのために残りの課題としてHTTPS接続をするにはどうしたらいいか、というところでした。 勝手な想定で、有料で取得した証明書は指定の場所に証明書を配置するイメージだったので、そうしなければいけないこともあるのかなと思ったり、そもそもdocker上のNginxに証明書を適用したいなら、ホスト側ではなくて、docoker上のNginxでSSLを適用しなければいけないものなのかな、と思ったり。
darumausagi

2019/08/14 13:55

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

2019/08/14 14:56

最初に添付したURLの通り listen 443 sslからの行を足せばできるのではないか、と思います (場所はservernameが一致する場所にかけば良いと思います) また、SSLをかけたいだけの目的であればCloudflareで外からSSLかけた方が最近は手軽ですね (更新とか考えなくていいし)
darumausagi

2019/08/15 02:21

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問