背景
OpenSSL 全称为 Secure Socket Layer, 是 Netscape 所研发, 利用数据加密 (Encryption) 作技术保障在 Internet 上数据传输的安全. 可确保数据在网络上的传输不会被窃听及截取.
当然, OpenSSL 是一个强大的密码库, 我们在使用 SSL 协议的时候不一定非得采用 OpenSSL, 不过目前基本上都是用的 OpenSSL, 因为它更安全, 使用起来也更简单.
通常出现的 OpenSSL 的漏洞需要升级版本解决
查看 openssl 版本
openssl version
进入存放源码包位置
cd /usr/local/scr
下载最新版 openssl 源码包 下载 openssl 地址
https://www.openssl.org/source/
解压
tar zxf openssl-1.1.0h.tar.gz
编译
- ./config --prefix=/usr/local/openssl-1.1.0h/ssl
- make && make install
将新编译的 openssl 替换系统老版本的
- mv /usr/bin/openssl /usr/bin/openssl.bak
- mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/openssl-1.1.0h/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl-1.1.0h/ssl/include/openssl /usr/include/openssl
配置文件搜索路径
echo "/usr/local/ssl/lib/">> /etc/ld.so.conf
ldconfig -v |grep openssl
查看安装完成后的最新版本
openssl version
openssl version -a
以上 openssl 安装更新完成
########
nginx 静态编译 ssl 模块
nginx 用户:
如果您是使用动态编译 ssl 模块的方式, 需保证 nginx 链接的是升级后的 libssl.so
如果您是使用静态编译 ssl 模块的方式, 需重新编译 nginx,--with-openssl 参数指向新的 openssl 源码目录
识别 nginx 是否为静态编译 https://blog.csdn.net/hujkay/article/details/23476557
我的 nginx 为静态编译的
进入 nginx 解压包的源码包路径
cd /usr/local/scr/nginx-1.10.2
进入 nginx 源码目录 重新编译.
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-http_ssl_module --with-openssl=/usr/local/openssl-1.1.0h/ssl
注释:
编译参数需要拷贝原来参数
查看 nginx 编译的参数
/usr/local/nginx/sbin/nginx -V
参数解析 --with-http_ssl_module --with-openssl=/usr/local/openssl-1.1.0h/ssl
[--with-http_ssl_module 使得 nginx 支持 ssl 模块 --with-openssl 指定安装目录, 通常两个都加上]
编译
make [生成最新二进制文件]
这里可以不 make install , 避免把原来的 nginx 其他配置覆盖了
编译时可能出现的报错
/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127
解决方案:
https://www.cnblogs.com/huanhang/p/7580843.html
修改后
需要把最新 nginx 二进制文件拷贝到安装目录的 sbin
@需要的可以备份好原来的二进制文件
cp /usr/local/src/nginx-1.10.2/objs /usr/local/nginx/sbin/nginx
验证 nginx 配置文件是否正确
/usr/local/nginx/sbin/nginx -t
重启 nginx 服务
/usr/local/nginx/sbin/nginx -s stop
启动代码格式: nginx 安装目录地址 -c nginx 配置文件地址
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
来源: http://www.bubuko.com/infodetail-2559146.html