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

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

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

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

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

nginx

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

SSL

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

proxy

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

Q&A

解決済

2回答

9047閲覧

リバースプロキシのバックエンドとフロントエンドの通信をSSL化(nginx)

退会済みユーザー

退会済みユーザー

総合スコア0

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

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

nginx

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

SSL

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

proxy

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

0グッド

0クリップ

投稿2016/02/08 18:02

編集2016/02/09 13:53

サーバーA(nginx)、サーバーB(nginx)の二台を用いてリバースプロキシを構成しました。
A-B間はローカル接続しています。
ドメインは(www.)example.comとします。

サーバーAはポート443で通信を行い(フロント)、サーバーBはポート80でAと通信を行っています(バックエンド)。

Client -(インターネット)- A(443) -(ローカル接続)- B(80)

クライアントはAへアクセスした際、暗号化された通信を行いますが、BがAへ通信を行う時はSSL対応していないので暗号化通信出来ません。

バックエンドがフロントへ通信する場合にもSSL対応をしたいのですが、良い方法はありますか?

※追加
OSはubuntu、CMSにwordpressを使用しています。

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

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

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

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

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

guest

回答2

0

BをhttpsでリッスンさせてAにはproxy_passとしてhttpsのURLを投入すればできます。

投稿2016/02/08 23:11

yuba

総合スコア5568

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

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

0

ベストアンサー

こんにちは。
ローカル通信なのでSSLは不要かなと思いましたが
以下やり方はいかがでしょうか?

nginx:example.com:443 -> |何かしらの処理| -> nginx:localhost:80
の通信の流れかと思います。

この場合何かしらの処理の部分が課題になるかと思います。

この何かしらの処理にドメインをつけてあげます。
SSLでポートがかぶるので8をつけた443とします。
nginx:example.com:443 -> nginx:backend.example.com:8443 -> nginx:localhost:80

この場合インターネットに出てします。
そこでhostsファイルで自分自身に指定してあげます。

OSわからないので、以下のような感じですかね。

hosts

1backend.example.com localhost:8443

そうするとhostsファイルが優先的に解決されますので、
外に出ないで自分の8443ポートを見に行きます。

後は
443で設定した内容を
8443でもう一個ファイルを作ってあげて、平文化してから80へproxyしてあげれば出来るかと思います。

注意書き
このやり方は環境に依存する可能性があるため、積極的に使用しないほうが良いと思います。
私の主観ですが、なるべくLAN内で参照できる構成のほうが運用しやすいと思います。

投稿2016/02/09 05:22

takataka1984

総合スコア66

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

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

退会済みユーザー

退会済みユーザー

2016/02/10 15:27

HTTP/2時代のバックエンド通信検討メモ http://d.hatena.ne.jp/jovi0608/20150716/1437035091 このページを見て試してみようと思ったのですが、 確かに環境に影響するのでややこしくなりますね。 素直に分かりやすい設定で進めることにしました。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問