记Apache httpd 2.4.6 升级部署 https

一个2014年初上线的项目,要升级https,记录一下。

一共有三台WEB服务器,进入 apache/modules 查看是否有 mod_ssl.so。

两台服务器正常,一台缺失,于是需要动态编译。

官网下载httpd2.4.6(这里需要./httpd -v 查看一下当前版本号),解压缩,进入源码 /modules/ssl/ 目录

cd /usr/local/src/httpd-2.4.6/modules/ssl/  

然后执行下面的动态编译命令

当前apahce的路径/bin/apxs -i -c -a -D HAVE_OPENSSL=1 -I /usr/include/openssl -lcrypto -lssl -ldl *.c

此处遇到了第一个坑:报错 /usr/bin/ld: cannot find -lcrypto

搜素一番后,是 /usr/lib64/libssl.so/usr/lib64/libcrypto.so 没有建立软连接。但是搜索出来的解决方案的路径不对,于是参考另外两台服务器

ln -s /lib64/libssl.so.0.9.8e /usr/lib64/libssl.so  ln -s /lib64/libcrypto.so.0.9.8e /usr/lib64/libcrypto.so  

使用上面方式建立软链接。

然后再次编译,提示成功了。

但是在httpd restart的时候碰到了第二个坑。

再次报错:mod_ssl.so: undefined symbol: SSL_get_srp_userinfo

搜索一番了解到是 openssl 版本太高。

这才想起来,之前我更新过一次openssl,现在的版本不是 0.9.8e了。

于是 找到现在的openssl对应lib目录 /usr/local/ssl/lib/libcrypto.so.1.0.0

删除现有的链接,重新链接为新的。

rm -rf /usr/lib64/libssl.so  rm -rf usr/lib64/libcrypto.so  ln -s /usr/local/ssl/lib/libssl.so.1.0.0 /usr/lib64/libssl.so  ln -s /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so  

于是重新编译apahce,再次重启能够成功了。

在配置https配置文件的过程中,记得要监听443端口并且设置好防火墙规则。

Listen 0.0.0.0:443  Listen [::]:443  

其他的配置文件就按照网上的参考就行了。

原文出处:pzxiaoyi -> https://www.pzxiaoyi.com/ops/apache-2-4-6-https.html

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » 记Apache httpd 2.4.6 升级部署 https