HTTPS部署笔记

本文涉及的产品
.cn 域名,1个 12个月
简介:
  1. 网站内所有的资源调用必须全部为HTTPS可访问

  2. 页面链接本站采用相对路径(如http://www.abc.com/index.html,则链接改为/index.html)

  3. 非本站资源如www.abc.com加载image.abc.com,则链接采用//image.abc.com/xxxx/xxx.jpg,而不是http://image.abc.com/xxxx/xxx.jpg或者https://image.abc.com/xxxx/xxx.jpg.注意image.abc.com此时也要能通过HTTPS加载

  4. 如果有使用WebSocket(如node.js),则WebSocket也需要使用SSL加密


针对有些站点为了节省证书成本或者其他原因,只有一个站点,同时也加载了其他站点的图片,则我们的处理就是


图片原访问地址为

http(s)://image.abc.com/xxxx/xxx.jpg

现在改为

http(s)://www.abc.com/img/image.abc.com/xxxx/xxx.jpg


Haproxy的配置文件如下

1
2
3
4
5
6
7
8
9
10
11
acl www_abc hdr_reg(host) -i ^(www.abc.com)$acl wabc_image path_beg -i  /img/image .abc.comreqrep ^Host:\ www.abc.com Host:\ image.abc.com  if  www_abc wabc_image
use_backend www_abc_com  if  www_abc  !wabc_image
acl image_abc hdr_reg(host) -i ^(image.abc.com)$
use_backend image_abc_com  if  image_abc
backend www_abc_com
     server s1 192.168.10.1:80 check port 80
     server s2 192.168.10.2:80 check port 80
backend image_abc_com
     reqrep ^([^\ ]*\ ) /img/ ([a-zA-Z0-9.]*)/(.*)\ (.*)  \1/\3\ \4
     server img1 192.168.10.11:80 check port 80
     server img2 192.168.10.12:80 check port 80


Nginx的配置则为

1
2
3
4
5
6
location ~*  /img/ (.*).com/ {
     set  $host_name $1;
     rewrite  /img/ (.*).com/(.*)$ /$2  break ;
     proxy_set_header Host $host_name.com;
     proxy_pass http: //192 .168.10.11;
}


WebSocket反向代理及SSL实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
upstream wsbackend {
     server 192.168.1.20:9000;
}
//ws 实现
server {
     listen 9000;
     location / {
         proxy_read_timeout 300;
         proxy_pass http: //wsbackend ;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection  "upgrade" ;
     }
}
//wss 实现
server {
     listen 9001;
     ssl on;
     ssl_certificate conf /keys/server .pem;
     ssl_certificate_key conf /keys/server .key;
     location / {
         proxy_read_timeout 300;
         proxy_pass http: //wsbackend ;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection  "upgrade" ;
     }
}

注意:在连接到WebSocket的域名是要被浏览器信任的域名,不可使用自签名的域名

如wss://socket.abc.com:9001,则socket.abc.com是要被浏览器信任的域名,否则出现

WebSocket connection to 'wss://socket.abc.com:9001' failed: WebSocket opening handshake was canceled

wKioL1gj5iHCTWJIAAB5eGcLJtM768.png



本文转自 rong341233 51CTO博客,原文链接:http://blog.51cto.com/fengwan/1870270

相关文章
|
6月前
|
缓存 Linux Shell
RHEL7部署http应用配置共享yum源
RHEL7部署http应用配置共享yum源
254 0
|
JavaScript 前端开发 Serverless
在阿里云函数计算FC部署好HTTP API后
在阿里云函数计算FC部署好HTTP API后
164 5
|
运维 负载均衡
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
277 0
|
Kubernetes 应用服务中间件 网络安全
用Kubernetes(k8s)的ingress部署https应用
用Kubernetes(k8s)的ingress部署https应用
396 0
若依修改,http和https的两种写法,部署成功的两种写法
若依修改,http和https的两种写法,部署成功的两种写法
|
6月前
|
缓存 安全 应用服务中间件
蓝易云 - Nginx的HTTPS部署与安全性能优化教程
以上就是在Nginx上部署HTTPS并进行安全性能优化的基本步骤。需要注意的是,这些步骤可能会根据您的具体需求和环境有所不同。
56 0
|
6月前
|
Kubernetes 应用服务中间件 nginx
Kubernetes v1.12/v1.13 二进制部署集群(HTTPS+RBAC)
Kubernetes v1.12/v1.13 二进制部署集群(HTTPS+RBAC)
|
开发框架 .NET 应用服务中间件
ASP.NET Core 部署HTTPS
ASP.NET Core Kestrel部署HTTPS1,在program.cs中CreateHostBuilder 替换成如下内容:public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseServ...
150 0
|
6月前
|
Kubernetes 容器
使用kubeadm部署k8s报错:The kubelet is not running或者level=error msg="Handler for POST /v1.43/images/create returned error: Head \"https://us-west2-dock
使用kubeadm部署k8s报错:The kubelet is not running或者level=error msg="Handler for POST /v1.43/images/create returned error: Head \"https://us-west2-dock
|
6月前
|
存储 网络安全 数据安全/隐私保护
Windows Server 2019 IIS HTTPS证书部署流程详解
Windows Server 2019 IIS HTTPS证书部署流程详解
579 0