[nginx][tls] nginx配置https与ssl/tls的sni的方法
一 https的sni配置方法
http {
}
server {
listen 443 ssl;
server_name test1.www.local test1.tls.local;
ssl_certificate /root/sni/sni_test1.cer;
ssl_certificate_key /root/sni/sni_test1.key;
location / {
root /data/www;
}
}
server {
listen 443 ssl;
server_name test2.www.local test2.tls.local;
ssl_certificate /root/sni/sni_test2.cer;
ssl_certificate_key /root/sni/sni_test2.key;
location / {
root /data/www;
}
}
server {
listen 443 ssl;
server_name test3.www.local test3.tls.local;
ssl_certificate /root/sni/sni_test3.cer;
ssl_certificate_key /root/sni/sni_test3.key;
location / {
root /data/www;
}
}
}
二 https的sni配置方法
http {
#map \$server_name \$sni_string {
map \$ssl_server_name \$sni_string {
test1.www.local test1;
test2.www.local test2;
test3.www.local test3;
# default xxx;
}
server {
listen 443 ssl;
ssl_certificate /data/sni/sni_\${sni_string}.cer;
ssl_certificate_key /data/sni/sni_\${sni_string}.key;
location / {
root /data/www;
}
}
}
三 tls的sni配置方法
stream {
upstream test {
server 127.0.0.1:50001;
}map \$ssl_server_name \$sni_string {
test1.www.local test1;
test2.www.local test2;
test3.www.local test3;
default test1;
}server {
listen 444 ssl;
ssl_certificate /data/sni/sni_\${sni_string}.cer;
ssl_certificate_key /data/sni/sni_\${sni_string}.key;
proxy_pass test;
}
}
四 复合情况下sni的配置方法
复合情况是指,多个server使用了相同的server name,又需要配置不同的证书文件时。
使用map定义多个不同的变量映射的方法,可以支持多个server的情况,如下,分别定义了两个变量 $sni_string 与 $sni_string445
用来处理不同的server。
stream {
upstream test {
server 127.0.0.1:50001;
}map \$ssl_server_name \$sni_string {
test1.www.local test1;
test2.www.local test2;
test3.www.local test3;
default test1;
}
map \$ssl_server_name \$sni_string445 {
test1.www.local test4451;
test2.www.local test4452;
test3.www.local test4453;
default test4451;
}
server {
listen 444 ssl;
ssl_certificate /data/sni/sni_\${sni_string}.cer;
ssl_certificate_key /data/sni/sni_\${sni_string}.key;
proxy_pass test;
}
server {
listen 445 ssl;
ssl_certificate /data/sni445/sni_\${sni_string445}.cer;
ssl_certificate_key /data/sni445/sni_\${sni_string445}.key;
proxy_pass test;
}
}
[author: classic_tong, date: 20190925]
[nginx][tls] nginx配置https与ssl/tls的sni的方法的更多相关文章
- Nginx、Tomcat配置https
一.Nginx.Tomcat配置https 前提就是已经得到了CA机构颁发的证书 一.合并证书 1.假设证书文件如下 秘钥文件server.key,证书CACertificate-INTERMEDIA ...
- nginx使用certbot配置https
一般现在的网站都要支持https,即安全的http. 机器:阿里云Ubuntu 16.04.3 LTS 方案一:自己申请证书 配置时需要确保有ssl模块, 之后域名解析下, 之后时申请证书,可以去阿里 ...
- 单机部署minio,设置Nginx代理,配置https(TLS)访问
安装 下载地址:https://dl.min.io/ # 创建目录 mkdir -p /usr/local/minio/{data,bin,etc} # 下载minio wget https://dl ...
- nginx,apache,tomcat配置https的阿里提供的文档
安装证书 ( 1 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到 # HTTPS server # #server { # listen 443; # serv ...
- nginx 反向代理 配置 https 实现http https同时存在
server { listen ssl; #监听443端口 server_name www.app01.com; ssl on; #启用ssl加密 ssl_certificate /etc/cert/ ...
- nginx 反向代理 配置 https 实现http https同时存在 经测试 支持location 规则
server { listen ssl; #监听443端口 server_name www.app01.com; ssl on; #启用ssl加密 ssl_certificate /etc/cert/ ...
- 微信小程序需求IIS服务器配置https关于SSL,TLS的综合解决方案
SpringBoot配置SSL同时支持http和https访问 传输层安全性协议(英语:Transport Layer Security,缩写作 TLS),及其前身安全套接层(Secure Socke ...
- 聊聊HTTPS和SSL/TLS协议
要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识.1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接 ...
- 浅谈HTTPS和SSL/TLS协议的背景和基础
相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和 ...
随机推荐
- vue的mixin简化开发
vue的mixin可以将多个组件公用的声明周期方法和数据封装成一个对象,在不同的组件中自由插拔.实际做项目的时候,可以定义一些mixin,供多个组件使用.也非常有必要定义一个全局的mixin对象,对所 ...
- Linux下使用iptables配置防火墙端口转发
1.背景 一些情况下,在linux上面我们想使用80-1024之间的端口,这个时候需要root权限. 当时root权限容易被提权,特别是早起那些Struct2,漏洞爆出的时候,一抓一个准-root权限 ...
- 导入一个eclipse的java项目到IDEA报Cannot find JDK '1.7' for module 'TEST'
解决办法: 右键你的项目--------------->OPen module settings 将dependencies里面的module sdk改成你安装的java版本就可以了(比如我电脑 ...
- python:使用多线程同时执行多个函数
使用多线程同时执行多个函数 import time import os import threading def open_calc(): with open('test.txt', 'r') as ...
- java面试 (七)- 关于String
1 String的定义(Java8中) // final的类,不能被继承// 继承了序列化接口,comparable接口,public final class String implements ja ...
- Django ORM 数据库设置和读写分离
一 Django的数据库配置 (一)修改settings.py文件关于数据库的配置: Django默认使用sqlite: DATABASES = { 'default': { 'ENGINE': 'd ...
- Influx Sql系列教程六:insert 修改数据
在influxdb中没有专门的修改数据的update语句,对于influxdb而言,如果想修改数据,还是得使用我们前面的说到的insert来实现,那么怎么判断一条insert语句是插入还是修改呢? 1 ...
- python tkinter中的事件绑定
一个Tkinter主要跑在mainloop进程里.Events可能来自多个地方,比如按键,鼠标,或是系统事件. Tkinter提供了丰富的方法来处理这些事件.对于每一个控件Widget,你都可以为其绑 ...
- LeetCode 84. 柱状图中最大的矩形(Largest Rectangle in Histogram)
84. 柱状图中最大的矩形 84. Largest Rectangle in Histogram
- Storm Kafka与配置和代码集成
1.目标 - 风暴卡夫卡整合 在本Kafka教程中,我们将学习Storm Kafka Integration的概念.此外,我们将在此Kafka Storm集成教程中讨论Storm架构,Storm Cl ...