背景:在上CDN以前,源站服务器的状况是:安装了SSL,配置了HTTPS,而且已经正常运行了一段时间。由于想要提升访问速度,决定上CDN,开启HTTPS。
这时,产生了疑问:源站上的HTTPS配置,是否仍需保留?跟CDN上开启的HTTPS有什么关系呢?
以阿里云ECS为例,进行说明:html
打开控制台 --> 产品与服务 --> 存储与CDN --> CDNgit
1.添加域名github
注意:源站信息的配置
类型选择 IP(可根据须要,选择其余类型)
端口:选择 80端口,表示源站需开放可正常访问的80端口。选择 443端口,则表示源站需配置HTTPS,开放443端口。
参考下图:安全
2.HTTPS配置服务器
参考帮助文档中说明,进行配置便可。session
CentOS使用Nginx,参考下面说明:
1.源站信息配置80端口时,Nginx配置信息框架
server { listen 80; server_name xx.xx.xx; charset utf-8; location / { root index; index index.html index.htm; } ... }
2.源站信息配置443端口时,Nginx配置信息阿里云
server { listen 80; server_name xx.xx.xx; rewrite ^(.*)$ https://${server_name}$1 permanent; } server { listen 443 ssl; server_name xx.xx.xx; ssl_certificate cert/2260236_xx.xx.xx.pem; ssl_certificate_key cert/2260236_xx.xx.xx.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; charset utf-8; location / { root index; index index.html index.htm; } ... }
注:xx.xx.xx 为域名
总之,客户端访问CDN节点和CDN节点访问源站,是两段不一样的链路。CDN开启HTTPS对客户端访问CDN节点有效,源站配置HTTPS对CDN节点访问源站有效。所以,CDN开启HTTPS,是由阿里云控制台中对源站信息的端口配置决定的,不强制要求源站配置HTTPS。不过,建议CDN和源站都开启HTTPS,确保全链路的安全。