我有一个centos 7服务器。 我使用IUS存储库( https://ius.io/ )从apache 2.4.6切换到apache 2.4.25。 我的目标是通过一个IP来支持多个SSL证书。
我已经安装了:
现在apache是否启用了SNI?
或者我必须用./configure –with-ssl = / path / to / your / openssl从头开始构build它,就像在文档中一样( https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI )?
感谢您的时间。
股票CentOS httpd&mod_ssl包已经支持SNI。 自0.9.8f版本以来,SNI一直得到openssl的支持,并且自版本2.2.12开始的任何httpd自openssl 0.9.8f和更新版本自动支持SNI。
但要检查你的httpd和mod_ssl是否支持SNI:
简单地通过configuration基于名称的SSL / TLS虚拟主机进行testing,并在重新启动后检查错误日志(从您已链接到的Apache httpd wiki ):
你怎么知道你的Apache版本是否支持SNI?
如果您为configuration了SSL的地址configuration了多个基于名称的虚拟主机,并且SNI没有内置到您的Apache中,那么在Apache启动时,
“ 你不应该使用基于名称的虚拟主机与SSL结合!! ”
将出现在错误日志中。
如果内置SNI,则会显示错误日志“ [警告] 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