web-dev-qa-db-ja.com

SSL証明書なしでvirtualhost 443を実行するにはどうすればよいですか?

無効なサブドメインが入力された場合にカスタム404エラーを発生させるvirtualhostディレクティブがあります。

<VirtualHost *:80> # the first virtual Host
  ServerName site_not_found
  RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:80>
  ServerName example.com
  ServerAlias ??.example.com
</VirtualHost>

HTTPS接続を介して同じカスタムエラーを表示するように仮想ホストを設定したいと思います。私は以下を試しました:

<VirtualHost *:443> # the first virtual Host
  ServerName site_not_found
  RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias ??.example.com
# SSL options, other options, and stuff defined here.
</VirtualHost>

しかし、サーバーは起動せず、エラーが発生します。

サーバーはSSL対応である必要がありますが、証明書が構成されていません[ヒント:SSLCertificateFile]((null):0)

この仮想ホストでSSLEngineがオンになっていない場合でも、SSL証明書が必要なようです。証明書を提供する以外に問題を回避する方法はありますか?仮想サーバーexample.comにSSLが必要なため、モジュールをオフにすることはできません。

3

この仮想ホストでSSLEngineがオンになっていない場合でも、SSL証明書が必要なようです。証明書を提供する以外に問題を回避する方法はありますか?

いいえ-お使いのブラウザのURLにhttpsが含まれている場合、SSLでの通信を想定しています。そうでない場合、失敗します。 Apacheはあなたにこれを言うことによって素晴らしいです、さもなければあなたは理解するべきいくつかのあいまいなブラウザエラーを持っているでしょう。したがって、ポート443を使用する前に、ApacheでSSLを構成する必要があります。

不正なSSL証明書であるというブラウザの警告が必要ない場合は、認証局から購入する必要があります。あなたはすることができますhttps://cert.startcom.org/ から無料のものを取得します場所はありますが、おそらく有料のものと同じレベルの認識はありません(特に古いマシンでは)。私はこれを開発サイトに使用しており、信頼されていないという警告はまだ表示されていませんが、やはり比較的新しいOS /ブラウザーのみを使用しています。

5
Jay

はい、方法があります:

Apacheのリッスンディレクティブを構成します(Ubuntuの場合/etc/Apache2/ports.conf

その中に何かがあります:Listen *:443

これにプロトコルを追加することで、HTTPを強制できます。

Listen *:443 http

このようにして、Apache2はポート443で単純なHTTPサーバーとしてリッスンできます。

ここにあります: https://httpd.Apache.org/docs/2.4/bind.html

1
mmeier

SSL証明書がないことによるApacheエラーを無視して、「無効な」サブドメインをカバーするワイルドカード証明書を作成または購入しない限り、実行しようとしていることは不可能です。

すべてのクライアントが内部にある場合は、ミニ署名機関を作成して、すべてのボックスにすべてのCA証明書をインストールできます。

クライアントが外部の場合、ワイルドカード証明書を購入する必要があります。

0