Apache-2.4

如何檢查 apache 的 SNI(伺服器名稱指示)可用性?

  • May 19, 2017

我有一個centos 7伺服器。我使用 IUS 儲存庫 ( https://ius.io/ )從 apache 2.4.6 切換到 apache 2.4.25 。我的目標是使用單個 IP 支持多個 SSL 證書。

我已經安裝了:

  • Apache/2.4.25 (CentOS)
  • httpd24u-mod_ssl-2.4.25-3.ius.centos7.x86_64
  • openssl-1.0.1e-60.el7_3.1.x86_64

apache 現在是否啟用了 SNI?

還是我必須像文件( https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI )中那樣使用 ./configure –with-ssl=/path/to/your/openssl 從頭開始建構它?

感謝您的時間。

庫存的 CentOS httpd 和 mod_ssl 軟體包已經支持 SNI。自 0.9.8f 版起,openssl 就支持 SNI,自 2.2.12 版以來,使用 openssl 0.9.8f 和更新版本建構的任何 httpd 都將自動支持 SNI。

但要檢查您的 httpd 和 mod_ssl 是否支持 SNI:

只需通過配置基於名稱的 SSL/TLS 虛擬主機進行測試,並在重新啟動後檢查您的錯誤日誌(來自您已經連結到的apache httpd wiki ):

如何判斷您的 Apache 建構是否支持 SNI?

如果您為配置 SSL 的地址配置多個基於名稱的虛擬主機,並且 SNI 未內置到您的 Apache 中,那麼在 Apache 啟動時會出現如下消息

> > “您不應該將基於名稱的虛擬主機與 SSL 結合使用!! ” > > >

將出現在錯誤日誌中。

如果 SNI 是內置的,那麼錯誤日誌將顯示

> > “$$ warn $$Init:基於名稱的 SSL 虛擬主機僅適用於具有 TLS 伺服器名稱指示支持 (RFC 4366) 的客戶端”。 > > >

或者用於ldd確認 mod_ssl 與 openssl 的 libssl 連結並確認版本:

ldd /usr/lib64/httpd/modules/mod_ssl.so
   linux-vdso.so.1 =>  (0x00007fff323f8000)
   libssl.so.10 => /lib64/libssl.so.10 (0x00007f3d99792000)        <=======
   libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f3d993a8000)
   libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3d9918b000)
   libdl.so.2 => /lib64/libdl.so.2 (0x00007f3d98f87000)
   libc.so.6 => /lib64/libc.so.6 (0x00007f3d98bc6000)
   libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f3d98977000)
   libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f3d98690000)
   libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f3d9848c000)
   libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f3d98259000)
   libz.so.1 => /lib64/libz.so.1 (0x00007f3d98043000)
   /lib64/ld-linux-x86-64.so.2 (0x00007f3d99c3d000)
   libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f3d97e34000)
   libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f3d97c2f000)
   libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f3d97a15000)
   libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f3d977ed000)
   libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f3d9758c000)
rpm -qf /lib64/libssl.so.10
openssl-libs-1.0.1e-60.el7_3.1.x86_64

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