Nginx单IP地址配置多个SSL证书的方法示例

默认情况下,Nginx一个IP地址仅支持一个SSL证书,需要多个IP地址才能配置多个SSL证书,在公网IP地址有限的情况下,可以使用TLS Server Name Indication extension(SNI, RFC 6066),它允许浏览器在SSL握手的时候发送请求的server name,也就是 Host,这样 Nginx 就能找到对应server 的SSL配置。

配置步骤如下:

1、检查Nginx是否支持TLS

$ nginx -V
...
TLS SNI support enabled
...

2、如果出现TLS SNI support disable,就得升级openssl版本,并且重新编译nginx。

具体步骤如下:

首先下载openssl(建议下载1.0.1h版本)

#wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz

下载Nginx

#wget http://nginx.org/download/nginx-1.9.9.tar.gz

解压openssl

#tar -zxvf openssl-1.0.1h.tar.gz

解压nginx,并编译

#tar -zxvf nginx-1.9.9.tar.gz
#cd nginx-1.9.9
#./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.1h/
#make && make install

#检查Nginx版本信息

#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.9.9
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55)
built with OpenSSL 1.0.1h 5 Jun 2014
TLS SNI support enabled
configure arguments: --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.1h/

配置Vhost中的域名证书

server
    {
     #########
        listen 80;
        listen 443 ssl;
        #listen [::]:80;
        server_name we.baohua.me;
        root  /home/wwwroot/we.baohua.me;

        ssl on;
        ssl_certificate_key /home/wwwroot/cert/we.baohua.me.key;
        ssl_certificate /home/wwwroot/cert/we.baohua.me.crt;
        ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!MD5;
     ###############
}

然后,重启Nginx即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Linux Nginx下SSL证书安装方法及WordPress CDN配置

    一.Nginx安装SSL证书 需要两个配置文件 (温馨提示:安装证书前请先备份您需要修改的服务器配置文件) 1_root_bundle.crt: 2_domainname.com.key. 注:这三个证书文件都在文件夹for Nginx.zip中,例:1_root_bundle.crt是根证书链(公钥),2_ domainname.com.key为私钥. (其中:证书公钥.私钥文件一般以您的域名命名:证书后缀名crt和cer的性质是一样的). 二.Nginx证书代码修改 1.打开Nginx安装目

  • Nginx配置SSL证书部署HTTPS网站的方法(颁发证书)

    自行颁发不受浏览器信任的SSL证书 手动颁发 xshell登录服务器,使用openssl生成RSA密钥及证书 # 生成一个RSA密钥 $ openssl genrsa -des3 -out tfjybj.key 1024 # 拷贝一个不需要输入密码的密钥文件 $ openssl rsa -in dmsdbj.key -out tfjybj_nopass.key # 生成一个证书请求 $ openssl req -new -key tfjybj.key -out tfjybj.csr 这里会提示输

  • 详解Nginx配置SSL证书实现Https访问

    背景 由于项目需求,安全起见,需要将之前的http接口访问变成https访问,所以需要配置SSL证书.项目的架构是这样的: 基本架构是硬负载(ReadWhere)+ 软负载(Nginx)+ Tomcat集群,现在的问题是SSl证书要配置在哪里,直接配置在硬负载上?还是分别配置在Nginx和Tomcat上?还是其他的配置方法呢? 首先在硬负载上配置放弃了,然后通过在网上查找资料,发现可以只在Nginx上配置证书,就是说Nginx接入使用Https,而Nginx与Tomcat之间使用Http进行衔接

  • CentOS 6.7下nginx SSL证书部署的方法

    环境 系统环境:CentOS6.7 nginx version: nginx/1.8.1 证书 # ls /opt/nginx/conf/ssl qingkang.me.crt # 公钥 qingkang.me.key # 私钥 配置 vim nginx.conf 找到以下内容 # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certif

  • Nginx配置SSL证书监听443端口

    一.准备证书文件 我使用的是阿里云Symantec 免费版 SSL证书.将证书文件下载后解压得到如下文件 在nginx–>cert目录中建一个ssl目录,将上面的所有文件拷贝到ssl目录中 二.修改nginx.conf文件 在nginx.conf的http{}中填下如下内容 server { listen 443; server_name www.httpstest.com; ssl on; root html; index index.html index.htm; #这里的.pem/.key

  • nginx配置ssl证书实现https访问的示例

    一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址:47.89.12.99 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的域名点"解析",进入解析页面后选择[添加解析]按钮会弹出如下页面: 主机记录这里选择@,记录值就是服务器ip地址,确认. 三,申请ca证书 在阿里云控制台-产品与服务-安全(云盾)-CA证书服务(数据安全),点击购买证书, 选择"免费版DV SSL",点击立即购买: 然

  • Nginx服务器的SSL证书配置以及对SSL的反向代理配置

    Nginx的SSL证书配置 1.使用openssl实现证书中心 由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书.服务端证书.客户端证书中都相同 Country Name State or Province Name Locality Name Organization Name Organizational Unit Name Country Name State or Province Name Locality Name Organization Name Or

  • Nginx 下配置SSL证书的方法

    1.Nginx 配置 ssl 模块 默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模块方法如下: 下载 Nginx 0.7.64 版本,解压 进入解压目录: 复制代码 代码如下: wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz tar zxvf nginx-0.7.64.tar.gz cd nginx-0.7.64 如果要更改heade

  • Nginx单IP地址配置多个SSL证书的方法示例

    默认情况下,Nginx一个IP地址仅支持一个SSL证书,需要多个IP地址才能配置多个SSL证书,在公网IP地址有限的情况下,可以使用TLS Server Name Indication extension(SNI, RFC 6066),它允许浏览器在SSL握手的时候发送请求的server name,也就是 Host,这样 Nginx 就能找到对应server 的SSL配置. 配置步骤如下: 1.检查Nginx是否支持TLS $ nginx -V ... TLS SNI support enabl

  • nginx实现一个域名配置多个laravel项目的方法示例

    背景 随着公司的子项目越来越多,会有大大小小十几个工程(仅后端),按照原先的做法,每上线一个项目,那么必须要有一个二级域名映射到对应的工程上,十个工程那么就意味着需要有十个二级域名(还不包含测试环境,次生产环境等),如此多的域名不仅仅是难于管理,更重要的是比较浪费资源,这个问题困扰了我很久,今天终于解决了这个问题,特此记录一下采坑日记,本文不会讲nginx中各个指令的原理,而是用实际的项目配置来练习nginx指令的用法并举一反三. 事先准备 域名 假设域名为:http://www.dev.com

  • SpringBoot添加SSL证书的方法

    一.先进行域名的购买 域名购买完毕,进行DNS的解析,我用的是阿里云的,服务器与域名都同时使用的阿里云 记录值这里填你的服务器的IP 地址 二.申请SSL证书 阿里云提供免费的SSL证书,一个人可以申请20个 找到这里 提交获取 然后进行证书的申请 填个人信息,填完一步步保存提交后,证书申请会需要绑定DNS解析 我的是阿里云的,直接去DNS控制台添加就行,你们的根据自己的去相应的添加 记录值改为TXT,主机记录跟记录值,直接复制给的就行 显示这样说明成功 然后根据自己的需要选择证书的下载 这里我

  • 如何利用Nginx防止IP地址被恶意解析详解

    使用Nginx的目的 使用阿里云ECS云服务器,首先聊聊笔者使用Nginx的背景. 初始化ECS后会生成一个公网IP,默认访问IP地址自动访问80端口,此时通过ip地址可直接访问启动在80端口的服务. 如再把域名解析到当前ip,即可通过域名直接访问80端口的服务. 然后,出现了一个问题:任何人都可以将域名解析到ip地址,也就是说,通过其他域名也可以访问到自己ECS上的服务.至于目的,这种攻击手段未免太光明正大了,应该是想养域名然后售卖(猜测,脑洞够大的大大交流一下). 避免这种攻击的方式有很多种

  • 解决使用了nginx获取IP地址都是127.0.0.1 的问题

    获取ip工具 import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import javax.servlet.http.HttpServletRequest; /** * IP地址 * * @date 2020年3月6日 下午12:57:02 */ @Slf4j public class IPUtils { /** * 获取IP地址 * * 使用Nginx等反向代理软件, 则不能通过reque

  • Apache环境下配置多个ssl证书搭建多个站点的方法

    服务器上有两个项目,都要配置https,所以在阿里云申请了两个二级的免费证书. 博主用的是phpstudy,如果用的其他集成环境,其实也差不多,参考下改改就好了. 一.申请证书(这里我用的是阿里的域名) 1.登录阿里云,点击域名,找到要配置ssl的域名,点击后面的ssl证书 2.这里我申请的是免费的单域名证书,点击确定提交阿里云审核,大概10-20分钟左右就审核好了 3.点击左边的菜单,选择要配置的域名相应的证书,点击后面的下载 4.我的环境是apache,这里我下载的是apache. 二.配置

  • Python实现根据IP地址和子网掩码算出网段的方法

    本文实例讲述了Python实现根据IP地址和子网掩码算出网段的方法.分享给大家供大家参考.具体如下: 该代码在Linux环境2.6.6python版本测试通过! #!/usr/bin/env python #_*_encoding:utf-8_*_ #Input your ip address and netmask to figure out your network . #申明:此脚本为交互式,默认情况下请执行python network.py from IPy import IP inpu

  • C#判断给定IP地址是否在指定范围内的方法

    本文实例讲述了C#判断给定IP地址是否在指定范围内的方法.分享给大家供大家参考.具体分析如下: 比如给定一个ip段:127.0.0.1 ~ 127.0.0.255,我们想判断一个给定的ip地址是否在此段内,可以先将ip地址转换成整数,然后整数比较大小就很容易了. 例如: 127.0.0.1 = 2130706433 127.0.0.255 = 2130706687 判断: 127.0.1.253 = 2130706941 是否在此范围内,直接比较整数大小即可 将ip地址转换成整数: public

  • 脚本实现SSL证书到期监控示例

    目录 1)准备工作 2)编写脚本 3)手动验证 4)配置到 CronJob 中 1)准备工作 创建一个企业微信账号,并创建一个组,在组里面配置企业微信提供的机器人.将机器人提供的 WebHook 地址保存. 2)编写脚本 [root@Nginx ~]# bash ssl-monitor.sh [root@Nginx ~]# cat ssl-monitor.sh #!/bin/bash # 定义网站域名和端口号信息 WebName="www.baidu.com" Port="4

  • docker获取Let's Encrypt永久免费SSL证书的方法

    一.起因 官方的cerbot太烦了,不建议使用还不如野蛮生长的acme.sh,而这里介绍docker运行cerbot获取Let's Encrypt永久免费SSL证书 二.选型 cerbot的证书不会自动刷新日期,但是acme.sh自带这功能,每天凌晨0:00自动检测过期域名并且自动续期 选择docker运行cerbot,是为了让服务器里尽量少配置和无意义的程序,方便管理.例如Let's Encrypt需要的Python2.7,git,pip我们都不需要装在宿主机内,容器就自己配置好了 原文 ht

随机推荐