Linux

將 apache ssl 埠與具有相同 openssl 埠 443 的不同埠綁定

  • February 27, 2017

我有一個伺服器(linux 基礎),我在其中安裝了 dotcms,它在埠 80 上執行,openssl 在埠 443 上。兩者都在執行過程中啟動。最近我在我的伺服器上安裝了 apache。當我啟動 apache 時它卡住了,因為 apache 上的預設 ssl 埠是 443 而 apache 是 80,它們都已經在執行。只是為了我的任務,我只在埠 90 上啟動了沒有 ssl 的 apache。但我顯然也想在不同的埠上用 apache 啟動 ssl。是否可以將 apache ssl 與相同的 openssl 綁定?

我在執行過程中需要我的預設 dotcms,無論如何我都無法停止它,如果需要啟動 apache,我只能重新啟動我的 dotcms 服務。但我需要 dotcms 和 apache 來並行執行。

在該連結上查看圖片(因為聲譽較低,我無法上傳圖片) http://developers89.byethost14.com/images/ssl.png

是的,可以將 Apache 綁定到不同的埠並仍然使用 SSL。

替換Listenapache 配置中的指令。配置應該包含類似的行

Listen 80
Listen 443

Apache 將偵聽使用這些配置選項定義的埠。替換它們,Apache 將偵聽不同的埠。

但是,您仍然需要告訴 Apache 在上面的埠上提供什麼服務。假設您希望 Apache 開始偵聽埠 8080(普通)和 4433(ssl)。然後您需要將 Listen 指令替換為

Listen 8080
Listen 4433

在此之後,在這些埠上定義兩個 VirtualHost,如下所示:

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 上偵聽未加密的連接,並在埠 4433 上偵聽 SSL。確保沒有任何包含錯誤埠號的舊 VirtualHost 定義。

引用自:https://serverfault.com/questions/528210