升级openssl和nginx实现同IP主机上给多个网站开启ssl证书

Linux升级openssl到最新版就是为了弥补漏洞,杜绝安全风险。蜗牛在配置lnmp时系统默认openssl是1.0.1g版,前段时间也爆出漏洞。在《centos下如何升级openssl的版本》中具体介绍了升级方法。

蜗牛在云主机上配置https网站时,重启nginx出现如下提示:

nginx: [warn] nginx was built with OpenSSL that lacks ALPN and NPN support, HTTP/2 is not enabled for 0.0.0.0:443 in /usr/local/nginx/conf

google后提示是openssl的版本过低,不支持ALPN NPN 和http2。解决问题的方法就是把openssl升级到1.0.2g以上版本即可。过如果希望https下开启http2,系统的nginx版本至少为1.9.5版。

在实际运用中,蜗牛在同一台云主机上搭建的多个网站需要开通ssl证书加密,实现https访问,但是在为同一个IP下的2个网站域名添加不同的ssl证书后,出现其中一个网站可以使用https,另一个网站不行,浏览器中提示ssl证书错误。问题出在Nginx没有开启TLS SNI支持:nginx不开启TLS SNI的支持,同一个IP下只能为一个域名配置ssl证书;如果需要为同一台主机同一个IP下的多个域名配置ssl证书,就需要开启nginx 的TLS SNI支持。查看当前nginx是否开启TLS SNI,使用如下命令:

#nginx -V  //字母V为大写

提示:TLS SNI support disable 就是没有开启,TLS SNI support enable 就是已经开启了。如果没有开启,先升级openssl,后重新编译nginx就可以了:

./configure –user=www –group=www –prefix=/usr/local/nginx \
–with-http_stub_status_module \
–with-http_ssl_module \
–with-http_gzip_static_module \
–with-ipv6 \
–with-openssl=../openssl-1.0.2g/
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp objs/nginx /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -t
make upgrade

未经允许不得转载:爱拼吧 » 升级openssl和nginx实现同IP主机上给多个网站开启ssl证书

赞 (2) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏