zoukankan      html  css  js  c++  java
  • Nginx支持多域名ssl证书


    Nginx支持多域名ssl证书

    导读:

    昨天凌晨将公司旗下的另外一个域名也升级成通过ssl证书登录的形式,那里料到过程竟然非常曲折,原因是nginx如果编译的时候使用openssl如果没有添加enable-tl***t参数的话,就只支持一个ssl证书,因此要让nginx支持多域名证书就必须要重新编译opensslnginx


    详细过程:

    升级更改完nginx配置文件以后,使用/usr/local/nginx/sbin/nginx  -t测试配置文件没有问题,就采用/usr/local/nginx/sbin/nginx  -s reload重新加载配置文件,输入新域名的https访问竟然出现错误证书的提示,左键点击证书错误,选择查看证书,发现用的是另外一个域名的证书。反复检查后错误依旧。心中转念一想:是不是nginx只支持一个证书?带着这个问题,在baidugoogle上搜索了一下,还真的是这个问题,要让nginx支持多证书,nginx必须支持TLS SNI,使用命令/usr/local/nginx/sbin/nginx  -V查看,服务器的查看结果如下:

    nginx version: nginx/1.0.12

    TLS SNI support disabled

    configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module

    很明显,不支持TLS SNI,需要重新编译opensslnginx

    接下来我们详细叙述一下能让nginx支持多域名证书的过程,主要分为如下两个大步骤:编译安装openssl和编译安装nginxnginx平滑升级,不影响业务)。

    一、编译安装openssl

    wget http://www.openssl.org/source/openssl-0.9.8l.tar.gz

    tar zxvf ./openssl-0.9.8l.tar.gz

    cd ./openssl-0.9.8l

    #编译的时候需要加上enable-tl***t参数

    ./config enable-tl***t

    make

    make install

    二、编译安装nginxnginx平滑升级)

    tar xzvf nginx-1.0.12.tar.gz

    cd nginx-1.0.12

    #备份原来的nginx配置

    mv /usr/local/nginx /usr/local/nginx_old

    #安装nginx

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module  --with-http_stub_status_module --with-openssl=../openssl-0.9.8l/

    make;make install

    cd /usr/local/nginx

    #备份新安装的配置目录

    mv conf conf_bak

    mv logs logs_bak

    #拷贝原来的配置文件目录

    cp -ar /usr/local/nginx_old/conf .

    cp -ar /usr/local/nginx_old/logs .

    #测试配置文件

    /usr/local/nginx/sbin/nginx -t

    #查找nginx主进程

    ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'

    #执行切换操作

    kill -USR2 912

    kill -WINCH 912

    kill -QUIT 912

     

    安装完成使用/usr/local/nginx/sbin/nginx  -V查看一下是否支持TLS SNI,检测如下:

    nginx version: nginx/1.0.12

    TLS SNI support enabled

    configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-openssl=../openssl-0.9.8l/

    Ok,显示已经支持了TLS SNI,在输入https访问,终于能显示正确的证书了! 注意目前如果使用xp上的IE去访问的话还是会提示证书有问题,因为xp上任何版本的IE都不支持TLS SNI

  • 相关阅读:
    leetcode每日一题(2020-07-04):32. 最长有效括号
    【Python基础知识】(七)函数和模块
    【Python基础知识】(六)用户输入与while循环
    【Python基础知识】(五)字典及相关操作
    【Python基础知识】(四)比较运算符、逻辑运算符和if语句
    【Python基础知识】(三)遍历列表、切片和元组
    【Python基础知识】(二)列表简介、操作列表元素
    【Python基础知识】(一)搭建编程环境、变量和简单的数据类型
    Ant Design Vue 中table表格解析 HTML
    Ant Design Vue 中重写form表单样式
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7169838.html
Copyright © 2011-2022 走看看