1.  规划

域名 解析IP Nginx代理
htpps://www.devcult.com 47.88.10.155  
htpps://auto.devcult.com 47.88.10.155 https://www.automa.com
htpps://www.automa.com 103.200.200.203  

本次实验用了2个一级域名,1个二级域名,2个ip地址;实现功能如上图所示,要求全部使用https,并且一级域名实现自动补全www。

2. 前提准备

  1. 47.88.10.155、103.200.200.203分别部署nginx
  2. 解析ip分别在域名购买商解析
  3. ssl证书需要申请个,分别对应两个一级域名和一个二级域名

3. Nginx 证书部署

两台主机47.88.10.155、103.200.200.203的nginx配置如下:

nginx启动路径:/usr/local/nginx/sbin/nginx

nginx配置文件路径:/usr/local/nginx/conf/nginx.conf

以47.88.10.155为例说明配置ssl证书:

3.1 进入配置文件编辑:

vim /usr/local/nginx/conf/nginx.conf

3.2 .在http节点下下新增或修改:

http {
  include mime.types;
  default_type application/octet-stream;   #配置https网站配置文件夹
  include /usr/local/nginx/conf/sites-enabled/*.conf;   ...   server {     listen 80;     #http 带www和不带www的入口
    server_name devcult.com www.devcult.com;     #可选,这里是把所有http请求全部重定向到https
    return 301 https://www.devcult.com$request_uri;     location / {
      root html;
      index index.html index.htm;
    }
    ...
  }
}

  

3.3 .新增网站ssl配置文件夹和配置文件

mkdir /usr/local/nginx/conf/sites-enabled

3.4 证书安装

3.4.1 devcult.com域名配置ssl

把申请的证书下载到服务器上(此处以腾讯云秘钥格式为例,使用亚洲诚信(TrustAsia)证书,其他类似),里面包含:

证书文件1_devcult.com_bundle.crt 、私钥文件2_devcult.com.key

将域名 www.devcult.com 的证书文件1_devcult.com_bundle.crt 、私钥文件2_devcult.com.key保存到同一个目录,本示例在/usr/local/nginx/conf目录下。
新建Nginx根目录下 conf/sites-enabled/www.devcult.com.conf 文件如下:

[root@aliyun ~]# cat /usr/local/nginx/conf/sites-enabled/www.devcult.com.conf
server {
listen 443 ssl;      #填写绑定证书的域名
server_name devcult.com;      #跳转www:把https://devcult.con 重定向到 http://www.devcult.com
return 301 http://www.devcult.com$request_uri;      #证书名称,需要跟证书文件名一致
ssl_certificate 1_devcult.com_bundle.crt;
ssl_certificate_key 2_devcult.com.key; ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on; location / {
root html;
index index.html index.htm;
}
}
server {
listen 443 ssl;      #填写绑定证书的域名
server_name www.devcult.com;      #证书名称,需要跟证书文件名一致
ssl_certificate 1_devcult.com_bundle.crt;
ssl_certificate_key 2_devcult.com.key; ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on; location / {
root html;
index index.html index.htm;
}
}

注:这里设置两个server的作用是为了让https://devcult.com 跳转至https://www.devcult.com

配置完成后,先用 sbin/nginx -t 来测试下配置是否有误,正确无误的话,重启nginx。就可以使 https://www.devcult.com 来访问了。

注:

配置文件参数 说明
listen 443 SSL访问端口号为443
ssl on 启用SSL功能
ssl_certificate 证书文件
ssl_certificate_key 私钥文件
ssl_protocols 使用的协议
ssl_ciphers 配置加密套件,写法遵循openssl标准
3.4.2 automa.com域名配置ssl

参考3.4.1

3.4.3 automa.devcult.com域名配置ssl

二级域名 automa.devcult.com 代理跳转 automa.com(或任意IP)配置:

把申请的二级域名证书下载到服务器上(此处以腾讯云秘钥格式为例,使用亚洲诚信(TrustAsia)证书,其他类似),里面包含:

证书文件1_automa.devcult.com_bundle.crt 、私钥文件2_automa.devcult.com.key

将二级域名 automa.devcult.com 的证书文件1_automa.devcult.com_bundle.crt 、私钥文件2_automa.devcult.com.key保存到同一个目录,本示例在/usr/local/nginx/conf目录下。
新建Nginx根目录下 conf/sites-enabled/automa.devcult.com.conf 文件如下:

cat /usr/local/nginx/conf/sites-enabled/automa.devops-cultural.club.conf
server {
listen 443 ssl;
server_name automa.devcult.com;
server_name_in_redirect off;
ssl_certificate 1_automa.devcult.com_bundle.crt;
ssl_certificate_key 2_automa.devcult.com.key; ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on; location / {
tcp_nodelay on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://www.automa.com;
}
}

3.5 使用全站加密,http自动跳转https(可选)

对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)
在http的server里增加

rewrite ^(.*) https://$host$1 permanent;

或者

return 301 https://www.devcult.com$request_uri;

这样就可以实现80进来的请求,重定向为https了。详情参考3.2

4.测试

输入地址 跳转地址 证书合法
devcult.com https://www.devcult.com 合法
www.devcult.com 合法
https://devcult.com 合法
https://www.devcult.com 合法
automa.devcult.com

https://automa.devcult.com

实际访问内容为https://www.automa.com

合法
automa.com https://www.automa.com

合法
www.automa.com 合法
https://automa.com 合法
https://www.automa.com 合法

Nginx实现ssl一级、二级域名证书部署并用https访问代理转发服务器的更多相关文章

  1. Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写

    最常见的: 静态地址重定向到带参数的动态地址 rewrite "^(.*)/service/(.*)\.html$" $1/service.php?sid=$2 permanent ...

  2. nginx泛域名解析实现二级域名多域名

    利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为html├── bbs└── www html为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径www为主页程序 ...

  3. 利用nginx泛域名解析配置二级域名和多域名

    利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为 html ├── bbs └── www html为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径 www为 ...

  4. 通过Nginx为网站配置二级域名

    目录 配置域名解析 配置Nginx 重启Nginx 补充 需求:服务器上面运行多个项目:实现每个二级域名访问对应项目: 服务器:阿里云服务器:域名:阿里云注册: 配置域名解析 即配置DNS解析.一定要 ...

  5. 设置apache服务器的访问证书,支持https访问,windows

    windows下载安装openssl http://slproweb.com/products/Win32OpenSSL.html windows证书的生成 安装成功后命令行执行 1.私钥,生成的文件 ...

  6. 域名添加www之后(或域名后加端口)无法访问(阿里云服务器)

    当时在阿里云服务器上部署了一个api接口,通过APP调用一直很正常,突然无法访问了,然后测试调查发现,只要在域名前加上www,再通过域名加端口的方式访问的话, 显示的都是 :502 错误:还一直以为是 ...

  7. nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)

    前提:安装好nginx,如果已经启动nginx,先停止,命令: ./usr/local/nginx/sbin/nginx -s stop 修改nginx配置 vi /usr/local/nginx/c ...

  8. nginx 配置多个二级域名

    server { server_name domain.com www.domain.com *.domain.com ; set $subdomain ''; if ($host ~* (\b(?! ...

  9. Nginx + 阿里云SSL + tomcat 实现https访问代理

    第一步:阿里云申请云盾证书服务 第二步:下载证书 第三步:修改Nginx配置 1. 证书文件214033834890360.pem,包含两段内容,请不要删除任何一段内容. 2. 如果是证书系统创建的C ...

随机推荐

  1. 后缀数组模板/LCP模板

    //后缀数组模板,MANX为数组的大小 //支持的操作有计算后缀数组(sa数组), 计算相邻两元素的最长公共前缀(height数组),使用get_height(); //计算两个后缀a, 和b的最长公 ...

  2. 使用 commander && inquirer 构建专业的node cli

    备注:   比较简单就是使用nodejs 的两个类库帮助我们进行开发而已,具体的使用参考类库文档 1. 项目初始化 a. 安装依赖 yarn init -y yarn add commander in ...

  3. DIV,CSS学习

    如何将页脚固定在页面底部 http://web.jobbole.com/10408/

  4. 多文件的Makefile

    Linux下编写一般采用gcc编译工具,但gcc无法满足大量的文件同时编译,这是就用到Makefile,首先先介绍一下gcc GCC编译的四个步骤 1.预处理,生成预编译文件(.文件): Gcc –E ...

  5. piezo film 压电相关信息记录 (2018-05-04 更新)

    piezo film 压电相关信息记录 起因需要使用 Piezo 做一些设计 http://www.te.com.cn/chn-zh/videos/transportation/piezo-film- ...

  6. bzoj1040(ZJOI2008)骑士——基环树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1040 基环树的模板. 套路就是把环断开,先把一端作为根节点,强制不选:再把另一端作为根节点, ...

  7. TCP/IP概念简述

    这里所说的是广义上的TCP/IP协议群,而不是特指TCP和IP这两种具体的协议.既然是协议群,那么都有哪些协议呢?我们先不着急回答这个问题,因为要弄清楚这个问题,首先得了解另两件事,就是为啥要有这个协 ...

  8. ASP.NET比较常用的26个性能优化技巧

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  9. Mysql中的GROUP_CONCAT使用

    SELECT res.ITRId Id, res.ITRResourceName ResourceName, res.ITRSupplierName SupplierName, res.ITRDept ...

  10. Warning: skipping non-radio button in group. 的处理

    1)把你的第一个Radio选中group属性: 2)把你“这个组中”的最后一个Raido控件“后”的一个控件(指得是控件添加先后的顺序,可以用ctrl+d来修改顺序)也选中group属性,如最后一个R ...