同じssslポート443で異なるポートにapache sslポートをバインドします


8

dotcmsをインストールしたサーバー(linuxベース)があり、ポート80で実行され、opensslはポート443で実行されています。どちらも実行中のプロセスで開始されます。最近、私は自分のサーバーにapacheをインストールしました。そして私がApacheを開始したとき、ApacheのデフォルトのSSLポートが443であり、Apacheが80であるため、それはスタックしました、両方がすでに実行されています。私のタスクのためだけに、ポート90でsslなしでapacheのみを開始しました。しかし、apacheでsslを開始し、明らかに別のポートで開始したいのです。同じopensslでapache sslをバインドすることは可能ですか?

実行中のプロセスでデフォルトのdotcmsが必要です。どのような場合でも停止できません。Apacheの起動が必要な場合にのみ、dotcmsサービスを再起動できます。しかし、両方を並行して実行するには、dotcmとApacheが必要です。

そのリンク上の画像を参照してください(評判が低いため、画像をアップロードできませんでした) http://developers89.byethost14.com/images/ssl.png


1
画像ではなくテキストとして情報を提供します(読み取り可能、検索可能など)。
カールリヒター

回答:


17

はい、Apacheを別のポートにバインドし、SSLを使用することは可能です。

ListenApache設定のディレクティブを置き換えます。設定には次のような行が含まれている必要があります

Listen 80
Listen 443

Apacheはこれらの構成オプションで定義されたポートで待機します。それらを置き換えると、Apacheは別のポートで待機します。

ただし、上記のポートで何を提供するかをApacheに伝える必要があります。Apacheがポート8080(プレーン)と4433(ssl)でリッスンを開始するとします。次に、Listenディレクティブを次のように置き換える必要があります。

Listen 8080
Listen 4433

この後、次のようにこれらのポートに2つのVirtualHostsを定義します。

NameVirtualHost 0.0.0.0:8080
NameVirtualHost 0.0.0.0:4433

<VirtualHost 0.0.0.0:8080>
    ServerName the.server.name
    ServerAlias *
    DocumentRoot /var/www/plain
</VirtualHost>

<VirtualHost 0.0.0.0:4433>
    ServerName the.server.name
    ServerAlias *
    DocumentRoot /var/www/ssl

    SSLEngine On
    SSLCertificateFile /the/certificate/file
    SSLCertificateKeyFile /the/key/file
</VirtualHost>

VirtualHostの定義がなくなった場合は、ServerAliasディレクティブ(または、ServerName)を含める必要はありません。

Apacheを再起動すると、暗号化されていない接続は8080でリッスンし、SSLはポート4433でリッスンします。間違ったポート番号を含む古いVirtualHost定義がないことを確認してください。


おかげで、ポートはオンですが、mydomain.comUnable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have.
4433

Linux a2enmod sslでこのコマンドを使用してsslモジュールを有効にしようとすると、それはエラーを出します:* Restarting web server apache2 ... waiting (98)Address already in use: make_sock: could not bind to address [::]:4433そして、私がそのモジュールを無効にして再起動すると、apache 4433ポートが実行されており、上記のコメントで強調表示されているエラーに直面しています
Waqas Ahmed

Apacheウェブサーバーを停止し、Apacheインスタンスが実行されていないことを確認します。「netstat -napt | grep 4433」コマンドでポートが開いているかどうかを確認します(出力がないはずです)。次に、a2enmodを実行してSSLモジュールを有効にします。また、「Listen」ディレクティブが設定ファイルに1回だけ表示されることを確認してください(たとえば、2番目の「Listen 4433」ディレクティブはエラーになります)。
Lacek 2013

Apache 2.4.10で取得Invalid ServerName "*" use ServerAlias to set multiple server names.
Ortomala Lokni 2017

回答を更新したので、構成はApache 2.4でも動作します。これを指摘してくれてありがとう。
Lacek 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.