web-dev-qa-db-ja.com

HTTPSを使用したホスト名から完全修飾ドメイン名へのリダイレクトが失敗する

まず、リライトを使いたくありません。

https://myserver.fullyqualified.comでhttpsを使用して、myserverへの呼び出し(HTTPまたはHTTPS)をセキュアな完全修飾ドメインにリダイレクトしようとしています。

これが私の設定です

# Redirect all http traffic to https
<VirtualHost *:80> # line 545
  Redirect / https://myserver.fullyqualified.com/
</VirtualHost>

<VirtualHost *:443> # line 549
  ServerName myserver.fullyqualified.com
  SSLEngine on
  SSLCertificateFile "conf/mycert.crt"
  SSLCertificateKeyFile "conf/mykey.key"
</VirtualHost>
<VirtualHost *:443> # line 555
  ServerName myserver
  Redirect / https://myserver.fullyqualified.com/
</VirtualHost>

これはHTTPで正常に機能します。http://myserverを呼び出すと、https://myserver.fullyqualified.comにリダイレクトされます。

ただし、https://myserverを呼び出すと、サイトが安全でないというエラーが表示され、期待どおりにhttps://myserver.fullyqualified.comにリダイレクトされません。

Chromeでは、エラーは言う

このサーバーは、それがmyserverであることを証明できませんでした。そのセキュリティ証明書はmyserver.fullyqualified.comからのものです。これは、設定の誤りまたは攻撃者が接続を妨害していることが原因である可能性があります。

これはhttpd -Sの出力です

*:80                   MYSERVER.fullyqualified.com (C:/Apache24/conf/httpd.conf:545)
*:443                  is a NameVirtualHost
         default server myserver.fullyqualified.com (C:/Apache24/conf/httpd.conf:549)
         port 443 namevhost myserver.fullyqualified.com (C:/Apache24/conf/httpd.conf:549)
         port 443 namevhost myserver (C:/Apache24/conf/httpd.conf:555)
ServerRoot: "C:/Apache24"
Main DocumentRoot: "C:/Apache24/htdocs"
Main ErrorLog: "C:/Apache24/logs/error.log"
Mutex default: dir="C:/Apache24/logs/" mechanism=default
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
PidFile: "C:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: SRVROOT=c:/Apache24

HTTPSトラフィックを完全修飾ドメイン名にリダイレクトするにはどうすればよいですか?

7
zero01alpha

リダイレクトをブロックする単純なsslエラーのように見えるため、HTTPSのSSL証明書には代替名としてmyserverが含まれている必要があります。

自家製の証明書の場合は、テストする前に必ずクライアントストアにインストールしてください。 Active Directoryドメインを使用している場合は、GPO=で証明書を展開できます。

9
yagmoth555

証明書がhttps://example.com用である場合、名前が一致しないため、ブラウザはhttps://exampleへのアクセスを許可しません。

ブラウザ(およびすべてのクライアントの証明書)で受け入れられる自己署名証明書がない限り、これを防ぐことはできず、ホスト名の公開署名付き証明書(Let's暗号化または通常のCAなど)を取得できません。 TLDなし。

5
Sven