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

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

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

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

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

4回答

8969閲覧

インターネットブラウザのURL欄にドメイン名を打ってHTTPSサイトを表示する

asakei

総合スコア7

HTTPS

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

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2017/05/19 01:58

お世話になります。

OS=Windows Server 2008 R2、IIS6.1(ビルド7601 SP1)で、
WEBサーバーを立てています。

有効にしているサイトは、Default Web Siteのみです。
サーバー証明書を取得し、SSL設定で、SSLを使う設定にしています。
クライアント証明書はありません。

WEBアプリケーションの開発は、VB2015(ASP.NET)で。
プロジェクトの.NET FramweworkはVersion4.6。
アプリケーションの設置場所はC:\inetpub\wwwrootです。
サイトに適用しているIISのアプリケーションプールは、
.NET Framwework:V4.0、統合、です。
ただ、単純なHTMLファイルを置いても、同様の現象が発生します。

ドメイン(ここではD.comとします)は、
お名前ドットコムで取得し、
AレコードでWEBサーバーがあるルーターのグローバルIPアドレスを
指定しています。
Aレコードではホスト名=D.com、TTL=3600です。

WEBサーバーはルーターのDMZ(192.168.100.0/24)に設置。
LAN(192.168.1.0/24)とは分けています。
WEBサーバー自身のプライベートIPアドレスは、
192.168.100.2です。

解決したい問題は、簡潔に申しますと、
以下の通りです。

インターネットブラウザのURL欄に、
「D.com」と打って実行しますと、
「not found(404)」エラーが表示されます。
http://D.com」でも同様です。
https://D.com」だと問題なく表示されます。
もし可能であれば、「D.com」と打って「https://D.com」が問題なく表示されるようにしたいと考えています。
そういう仕様ということであれば、このままで参ります。

この問題の原因を探るために、バインド設定を色々と変更して、
試してみました。

(バインドA)
http
IPアドレス:192.168.100.2
ポート:80
サーバー証明書:D.com

(バインドB)
https
IPアドレス:192.168.100.2
ポート:443
ホスト名:D.com

1.A有効、B有効、SSL設定で「SSLを使う」チェックあり
→「D.com」を打つと、アクセス拒否(403エラー)。

2.A有効、B有効、SSL設定で「SSLを使う」チェックなし
→「D.com」を打つと、「http://D.com」が開く。
httpsで開いてほしい。

3.A無効、B有効、SSL設定で「SSLを使う」チェックあり
→「D.com」を打つと、見つかりません(404エラー)。

4.A無効、B有効、SSL設定で「SSLを使う」チェックなし
→「D.com」を打つと、見つかりません(404エラー)。

以上のように、いずれにおいても、
うまくいきませんでした。

解決方法がありましたら、
ご教示頂けましたら幸いです。

どうぞよろしくお願いします。

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

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

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

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

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

guest

回答4

0

1つのコンテンツ(C:\inetpub\wwwroot)
1つのサイト(Default We Site)
2つのバインド(HTTPS443、HTTP80)

のままで、IISのHTTPリダイレクト、URL書き換えは使わず、
Web.configの内容を編集しました。

<?xml version="1.0"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="(ルール名)" enabled="true"> <match url="D.com/.*" ignoreCase="false" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

これで、ドメイン名を打ってHTTPSにリダイレクトできました。

pattern="off"だと、
コンテンツがHTTPで開いてしまいます。

これだと、パソコンのブラウザ(クローム)ではうまくいきましたが、
マイクロソフトエッジ、スマホ(アンドロイド、アイフォン)ではだめでした。

色々と試して、
match url="(.*)"
に変更して、うまくいきました。

match url="."だと、内部サーバーエラー。
match url="/.
"だと、やはりエッジ、スマホでは出来ず。
でした。

投稿2017/05/20 06:59

編集2017/05/21 01:24
asakei

総合スコア7

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

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

0

お世話になります。

お伺いさせて頂いた内容では、

1つのコンテンツ(C:\inetpub\wwwroot)
1つのサイト(Default We Site)
2つのバインド(HTTPS443、HTTP80)
サイトのリダイレクト先:HTTPS443

でした。

これですと、リダイレクト設定はサイト固有のもので、
サイトが1つしかありませんので、
HTTP80→HTTPS443→HTTPS443・・・の無限ループが発生し、
ERR_TOO_MANY_REDIRECTSが発生しました。
「SSLを使う」にしている場合は、HTTP80だと、
無限ループに入る前に、404エラーに。

ご紹介頂きましたURL Rewriteの機能は、確認しますと、
すでに入っていまして、実行しましたが結果は同様でした。

次に、

1つのコンテンツ(C:\inetpub\wwwroot)
2つのサイト(Default We Site,siteZ)
それぞれのバインド(HTTPS443、HTTP80)
サイトのリダイレクト先:HTTPS443

という具合に、サイトを2つにして、バインドをそれぞれ1つずつに。
ただ、これでも同じ結果になりました。
コンテンツ参照先が同じだからか、
片方のサイト(HTTP80)にリダイレクトを設定しますと、
もう片方(HTTPS443)も設定されてしまい、
やはり、無限ループに。

そこで、
C:\inetpub\wwwroot\Zを作り、
この中に簡単なHTMLファイルを置き、
次のようにしました。

2つのコンテンツ(C:\inetpub\wwwroot、C:\inetpub\wwwroot\Z)
2つのサイト(Default We Site,siteZ)
それぞれのバインド(HTTPS443、HTTP80)
サイトのリダイレクト先:HTTPS443 ※sizeZのみ

これで、ドメイン名「D.com」を打つと、
sizeZに行き、Default Web Siteにリダイレクトされ、
無限ループにはなりませんでした。

この方法が一般的なのかどうかは分かりませんが、
様子をみてみたいと思います。

ご教示ありがとうございます。

この方法で何か不適切な部分がありましたら、
ご指導よろしくお願いいたします。

投稿2017/05/20 01:18

asakei

総合スコア7

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

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

退会済みユーザー

退会済みユーザー

2017/05/20 02:57

> この方法が一般的なのかどうかは分かりませんが、 一般的ではないと思います。 私の回答で紹介した設定方法は試されましたか?
guest

0

IIS7 以降であれば URL Rewrite Module 2 をインストールして使ってみてはいかがでしょう?

今回の http ⇒ https にリダイレクトする場合の設定の仕方は以下の記事が参考になると思います。

Redirect from HTTP to HTTPS using the IIS URL Rewrite module
https://blogs.technet.microsoft.com/dawiese/2016/06/07/redirect-from-http-to-https-using-the-iis-url-rewrite-module/

他にも iis url rewrite module 2 http to https などをキーワードにググるといろいろヒットしますので自分でもやってみてください。

URL Rewrite Module 2 は自分でダウンロードしてインストールする必要がありますので注意してください。入手先は以下の記事の下の方の<注意>を見てください。

URL Rewrite Module の Outbound Rules
http://surferonwww.info/BlogEngine/post/2017/03/20/url-rewrite-module-putbound-rules.aspx

投稿2017/05/19 02:50

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

asakei

2017/05/19 02:59

ありがとうございます。 ツールがあるのですね。 拝見、確認させていただきます。
asakei

2017/05/20 01:34

色々と試しまして、解決できました。 ありがとうございました。
退会済みユーザー

退会済みユーザー

2017/05/20 02:53

どのように解決したのか具体的に書いていただけませんか? 後で検索などでこのスレッドにたどり着いた人の役にも立つと思いますので。
退会済みユーザー

退会済みユーザー

2017/05/20 02:56

すません、上の私のコメントの件ですが、回答欄に書いてあるのを見落としてました。
asakei

2017/05/20 04:36

ありがとうございます。 IISのメニューの中に、 「URL書き換え」という項目がありまして、 ご紹介頂きました、 Redirect from HTTP to HTTPS using the IIS URL Rewrite module に出てくる画面と同じでしたので、 この内容に沿って行ったのですが、 できませんでした。 URL Rewrite Module 2のインストールをすると、 また違いますかね。 英語があまり得意ではありませんが、 トライしてみます。
退会済みユーザー

退会済みユーザー

2017/05/20 05:01

IIS Manager の機能ビューに URL 書き換えがあって、それをダブルクリックすると紹介した記事にあるような編集画面が出てくれば URL Werite Module 2 はインストール済みのはずです。 設定が完了すると当該アプリの Web.config に紹介した記事の内容の設定(記事の下の方を見てください)がなされるので、確認してください。
asakei

2017/05/20 05:15

ありがとうございます。 そうしますと、インストール済ですね。 Web.Configを直接、以下のように編集し、 置きなおしてみました。 (参考) https://ruzyu.com/web-config-redirect.html <?xml version="1.0"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="RedirectHTTPS" enabled="true"> <match url="D.com/.*" ignoreCase="false" /> <conditions> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration> バインド設定は、1つのコンテンツ、1つのサイトに、 2つのバインド(80、443)に戻しました。 これですと、「D.com」を打った際に、 404エラーは出ず、コンテンツが表示はされるのですが、 HTTPSではなくHTTPのまま表示されます。 「https://D.com」で打つと、正しく表示されます。 また色々と試してみます。
asakei

2017/05/20 06:50

お世話になります。 <add input="{HTTPS}" pattern="off" /> の部分を、 <add input="{HTTPS}" pattern="^OFF$" /> にすることで、出来ました!
退会済みユーザー

退会済みユーザー

2017/05/20 09:59

紹介した記事では patternSyntax="Wildcard" なのですが、そのあたりは考慮されているでしょうか? なんにせよ URL Rewrite でうまくいったのは良かったです。
asakei

2017/05/21 01:25

ありがとうございます。 ワイルドカードは想定していません。 上記のWeb.configの書き方ですと、 これだと、パソコンのブラウザ(クローム)ではうまくいきましたが、 マイクロソフトエッジ、スマホ(アンドロイド、アイフォン)ではだめだと判明しました。 色々と試して、 match url="(.*)" に変更して、うまくいきました。 match url=".*"だと、内部サーバーエラー。 match url="/.*"だと、やはりエッジ、スマホでは出来ず。 でした。 ありがとうございます。
guest

0

ベストアンサー

http://~でアクセスが来た場合、80番にHTTPで接続されますので、HTTPSに切り替えたければHTTP→HTTPSのリダイレクトを掛ける必要があります。

なお、Windows Server 2008 R2だったらIISは7.5のはずですが、バージョンを確認していただければ幸いです。

投稿2017/05/19 02:04

編集2017/05/19 02:08
maisumakun

総合スコア145121

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

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

asakei

2017/05/19 02:08

ありがとうございます。 HTTP→HTTPSのリダイレクトですね。 調べてみます。
asakei

2017/05/19 02:59

失礼しました。 Server2008R2が6.1、IISは7.5でした。 今、HTTPリダイレクト設定を行いました。 リダイレクト先:https://D.com 状態コード:永続的(301) これでブラウザから見ますと、 ERR_TOO_MANY_REDIRECTSエラーで表示できませんでした。 ブラウザのクッキーを削除しても同様です。 色々調べますと、無限ループが起きてしまっているから、 であると思われますが、 設定をどのようにしてよいのかが分かりません。
asakei

2017/05/20 01:33

色々と試しまして、解決できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問