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

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

ただいまの
回答率

89.09%

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

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 4,827

asakei

score 7

お世話になります。

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エラー)。

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

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

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

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 4

checkベストアンサー

0

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

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

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/05/19 11:08

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

    キャンセル

  • 2017/05/19 11:59

    失礼しました。

    Server2008R2が6.1、IISは7.5でした。

    今、HTTPリダイレクト設定を行いました。
    リダイレクト先:https://D.com
    状態コード:永続的(301)

    これでブラウザから見ますと、
    ERR_TOO_MANY_REDIRECTSエラーで表示できませんでした。
    ブラウザのクッキーを削除しても同様です。

    色々調べますと、無限ループが起きてしまっているから、
    であると思われますが、
    設定をどのようにしてよいのかが分かりません。

    キャンセル

  • 2017/05/20 10:33

    色々と試しまして、解決できました。

    ありがとうございました。

    キャンセル

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/20 15:50

    お世話になります。

    <add input="{HTTPS}" pattern="off" />
    の部分を、
    <add input="{HTTPS}" pattern="^OFF$" />
    にすることで、出来ました!

    キャンセル

  • 2017/05/20 18:59

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

    キャンセル

  • 2017/05/21 10:25

    ありがとうございます。

    ワイルドカードは想定していません。

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

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

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

    ありがとうございます。

    キャンセル

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 11:57

    > この方法が一般的なのかどうかは分かりませんが、

    一般的ではないと思います。

    私の回答で紹介した設定方法は試されましたか?

    キャンセル

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="/.*"だと、やはりエッジ、スマホでは出来ず。
でした。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

  • ただいまの回答率 89.09%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる