前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WDCP应用篇之https之路

WDCP应用篇之https之路

原创
作者头像
相柳
发布2019-05-22 09:32:58
3.7K0
发布2019-05-22 09:32:58
举报
文章被收录于专栏:灵光独耀

在已经有大量的网站走上https之路的时候,对于https的需求也日益增加,似乎https已经成为一种普遍性需求,于是我们就申请了一波免费的DV证书:https://console.cloud.tencent.com/ssl

申请免费证书
申请免费证书

申请完成之后,自然是需要我们进行一番服务器的部署了,如果是自建的,在php或者是htaccess上写入对应的配置即可,之前为了方便统一管理多个网站,我们通过了WDCP面板进行配置,好在wdcp从3.x开始就增加了对SSL证书的支持,摸索了几天之后,总算是将WordPress和企业站点的全面https画上了句号。

第一步: 申请https证书,下载证书到本地,一般会有如下目录:

SSL证书
SSL证书

主要是针对不同类型的web,使用不同类型的证书。

第二步: 设置WDCP面板,主要分为以下几个步骤:

在系统设置项目中找到web设置,在80端口后增加443端口的支持。

添加443端口
添加443端口

到防火墙开通TCP443端口,如果是腾讯云主机,安全组同理,安全组的设置见下一篇专栏。

添加防火墙端口放通
添加防火墙端口放通
放通443
放通443

这里需要特别注意,不是直接点添加就完事了,

点击保存,重启web后仍然生效
点击保存,重启web后仍然生效

网站管理栏目中,找到SSL证书管理-点击右侧证书上传

上传证书
上传证书

根据对应的引擎来上传证书,引擎在 系统设置,引擎中查看,一般默认是N+A,只需要上传Nginx的证书即可,如果是N+P同理,如果是A+P,则需要上传apache的证书,配合htaccess文件来操作。这里以N平台为例,在文件名中写入域名 yourdomain.com,上传的证书会自动重命名为合适的名称。

上传证书
上传证书

证书的默认路径一般在 /wdlinux/apache(nginx)/conf/cert ,可以在控制台看见,或者点击网站的文件管理后,选择nginx配置以及apache配置后,选择返回上一层。当然也可以用find来找。

SSL选择
SSL选择

SSL的开启有三个选项,分别是不启用,启用,强制启用,对应的是,不开启,开启https不强制跳转,强制跳转https,这里我用的是第二种。

启用SSL
启用SSL

wdcp也有合作商可以提供免费证书,由于我的业务都在腾讯云,所以我用的是腾讯云的证书,大家可以自行选择。

这里开启之后或者选择强制之后,一般就可以了。但是大多数小伙伴都会遇到问题,下面我们说下几个情况。

https没有全部转换,导致有些资源加载不了,错误提示非https请求被block,或阻止加载。

在meta标签处添加: <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

这个的作用是把请求升级为https请求。

但是这个html层面的设置会有一个新的问题,

就是可能后端动态的php以及js无法加载

可以将调用换成相对路径 比如,原来的 src="yourdomain.com/js/jquery.js" 改为 src="//yourdoman.com/js/jquery.js"

其中//的 作用就是让其自动在http和https中转换,因为一般站点后端都会有协议地址转换的正则。

某些动态化非常灵活的站点,无法将所有调用改为相对路径,导致无法登录后台等问题

这里有两个思路,一个是在apache引擎下,通过htaccess文件,重写的方式,监听80端口,

再做协议地址转换,强制301如:

RewriteEngine on

RewriteCond %{SERVER_PORT} 80

RewriteRule ^(.*)$ https://yourdomain.com/$1 [L,R=301]

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^. index.php [L]

但是这个方式在WDCP并不适用,有多次重定向的问题,于是,就尝试换一种思路,检查nginx配置文件,在

location ~ \.php$ {

proxy_pass http://127.0.0.1:88;

include naproxy.conf;

proxy_set_header X-Forwarded-Proto https;// 添加对于php的转换

} location @apache {

internal;

proxy_pass http://127.0.0.1:88;

include naproxy.conf;

proxy_set_header X-Forwarded-Proto https;// 添加对于php的转换

}

问题解决后,发现只要网站操作改动就会被重写覆盖,于是找到,naproxy.conf,

在末尾添加 proxy_set_header X-Forwarded-Proto https;

保存后,

service httpd restart

重启web使得修改生效。

WordPress如此操作后,还是无法全部https

WordPress其实便捷许多,登录后台后,点击插件,选择

安装插件
安装插件

搜索Really Simple SSL,安装并启用即可。

SSL插件
SSL插件

有问题欢迎留言讨论。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档