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

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

新規登録して質問してみよう
ただいま回答率
85.49%
HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

SSL

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

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Q&A

解決済

2回答

572閲覧

ローカル環境でSSL化について

yuki_90453

総合スコア326

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

SSL

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

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

0グッド

0クリップ

投稿2018/11/06 04:42

編集2018/11/07 04:59

###経緯
ローカルでテスト環境を構築しています。
HitchというTLS Proxyツールで下記の証明書をまとめた.pemを指定する必要があります。
・証明書
・中間証明
・秘密鍵
・Diffie-Hellman

参考にしているページはLet’s encryptの使用を前提ですが、ローカルなのでopensslコマンドで自己証明書を使用しています。

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt

これですと中間証明が発行出来ません。

###試した事
別の参考にしたページでキーと証明書が合体させたpemを指定していたので試しました

cat example.com.key example.crt > combined.pem

下記のエラーが表示されます。

Invalid parameter 'pem-file': Unable to stat x509 certificate PEM file

###質問
1)そもそもですが、ローカル環境で自己証明書を動作させる事は可能ですか?

1-1) (もしわかれば教えて下さい)自己証明書によりブラウザでWarning表示が出ますが、ページの閲覧自体はできるかと思います。しかし、hitchではエラーとなってしまう場合はあるのでしょうか?

  1. 「Unable to stat x509 certificate PEM」について元となる鍵と証明書は-x509で発行しているのですが、この表示されます。原因はどこにあるのでしょうか?

やはりcatで合成させるのが原因ですか?


わかりにくい文章で申し訳ございません。バックエンドの知識がまだあまりなく学習している所です。
間違っている部分など多々あるかと思います。アドバイス頂ければ幸いです。

何卒よろしくお願い致します。

###追記
「Hitch 1.4とVarnish 5.2でHTTP/2なMagento環境を作る」
https://principle-works.jp/blog/making-http-2-magento-environment-with-hitch-1-4-and-varnish-5-2/

上記のサイトを参考に、Hitch+Varnish+Docker+自己証明書+Magentoで構築したいと考えております。
現段階でVarnish+Docker+自己証明書+Magentoまでは動作確認が出来ており、Hitchを加える事でhttp/2で対応させたい考えております。

現状、HitchからVarnishへの接続は出来ているのですが、その後Backend fetch エラーとなり失敗しております。Web上ではVarnish(Backend fitch error)と表示されます。
私の考察でcertbotへの証明確認を失敗しているのではないかと考えております。理由としてはopensslコマンドで証明書を発行した際に所有確認の為のポート設定を行っていないからです。よってこのポートに参照行っても何もでるはずがないのでおかしいと考えております。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Invalid parameter 'pem-file': Unable to stat x509 certificate PEM file

「pem-file」という設定パラメータに指定されたパスにファイルが存在しないと考えられます。ソースコード中の問題のエラーメッセージを出す処理はここです。statが失敗していますね。

投稿2019/03/19 10:32

ikedas

総合スコア4306

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

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

0

ローカルにブラウザから https でアクセスする環境を構築したいという要件であれば、自己証明書で Web サーバを建て、ブラウザにそれを登録することで動作させることができます。

投稿2018/11/06 11:07

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yuki_90453

2018/11/06 12:02

回答ありがとうございます。 opensslの認証方式でHTTP-01やDNS-01は利用出来ないでしょうか?
退会済みユーザー

退会済みユーザー

2018/11/06 23:15

自己証明書の発行に所有確認いれても意味ないからないんじゃない?調べてないけど。
yuki_90453

2018/11/06 23:25 編集

なるほど、これは所有確認を行っているんですね。 代替案として、所有確認を証明書ファイルに指定させるのではダメなんでしょうか? 外部サーバーに問い合わせる訳でなく、わざわざサーバー内でポートを指定してアクセスする事がイマイチ理解出来ません。 backend certbot { .host = "127.0.0.1"; .port = "888"; } if (req.url ~ "^/.well-known/acme-challenge/.*") { set req.backend_hint = certbot; return(pass); }
退会済みユーザー

退会済みユーザー

2018/11/07 03:22 編集

目的がなんなのかよくわからなくなりました。 ローカルで、https 環境を構築して、Web アプリのテストをしたいのだと思っていたのですが、Hitch を検証したいのですかね? 何がしたいのか、整理して、質問に追記して頂けますか?
yuki_90453

2018/11/07 04:42

混乱させてしまい、申し訳ございません。 「Hitch 1.4とVarnish 5.2でHTTP/2なMagento環境を作る」 https://principle-works.jp/blog/making-http-2-magento-environment-with-hitch-1-4-and-varnish-5-2/ 上記のサイトを参考に、Hitch+Varnish+Docker+自己証明書+Magentoで構築したいと考えております。 現段階でVarnish+Docker+自己証明書+Magentoまでは動作確認が出来ており、Hitchを加える事でhttp/2で対応させたい考えております。 現状、HitchからVarnishへの接続は出来ているのですが、その後Backend fetch エラーとなり失敗しております。Web上ではVarnish(Backend fitch error)と表示されます。 私の考察でcertbotへの証明確認を失敗しているのではないかと考えております。理由としてはopensslコマンドで証明書を発行した際に所有確認の為のポート設定を行っていないからです。よってこのポートに参照行っても何もでるはずがないのでおかしいと考えております。 お忙しいかと思いますが、アドバイス頂ければ幸いです。 何卒、よろしくお願い致します。
退会済みユーザー

退会済みユーザー

2018/11/07 04:50

やはりよくわからないのですが、目的は、Hitch を使用したシステムの検証ということでしょうか? 質問の方へ追記してください。 他の方の目にもとまりやすくなります。 certbot って、Let's Encrypt のためのコマンドですが、自己証明書とは関係ないはずです。Hitch に詳しくないですが、なんらか関連があるのでしょうか?
yuki_90453

2018/11/07 04:58 編集

>やはりよくわからないのですが、目的は、Hitch を使用したシステムの検証ということでしょうか? 目的は本番環境と全く同じ物をローカル環境でも実現したいです。Hitchに関して言えばhttp/2の使用を確認したいからです。本番環境で利用する前にテスト環境で利用することで不具合などないか導入スムーズを行いたいなどです。 質問の方へ追記致します。 参考にしているページは、Let's Encryptを使用しているのでcertbotコマンドが使えます。 私の環境はローカル環境になりますのでLet's Encrypt が使えず、openssl(自己証明書)を使用している次第になります。
yuki_90453

2018/11/07 07:34

いかがでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問