全局升级(apt-get升级)后,Apache2将不再与SSL一起使用。
Ubuntu 16
Apache版本:2.4.37
OpenSSL版本:OpenSSL 1.1.1-pre7(beta)2018年5月29日
LD_LIBRARY_PATH = / usr / local / lib
当我尝试启动服务时,出现以下错误:
Dec 12 18:43:59 labo apachectl [1677]:apache2:语法错误在线 /etc/apache2/apache2.conf的146:第2行的语法错误 /etc/apache2/mods-enabled/ssl.load:无法加载 /usr/lib/apache2/modules/mod_ssl.so放入服务器: /usr/lib/apache2/modules/mod_ssl.so:符号 未在以下版本中定义的SSL_CTX_set_post_handshake_auth,版本OPENSSL_1_1_1 带有链接时间参考的文件libssl.so.1.1
如果从apache2禁用ssl,则可以成功启动该服务。
我尝试重新安装apache2和openssl,但情况没有任何改善。
发现问题:
我使用的OpenSSL版本是错误的版本。几个月前,我编译了OpenSSL1.1.1-pre7以适应一些安全要求。显然,升级没有将OpenSSL更新到良好版本(OpenSSL 1.1.1 2018年9月11日)。
以下步骤进行了更正:
~# sudo a2dismod ssl
~# sudo apt-get purge openssl
~/openssl-1.1.1-pre7# make uninstall //Uninstall the version I build
~# sudo apt-get install openssl
~# sudo a2enmod ssl