https部署折腾(五):修改function.php设置wordpress文章中链接的http为https

当站点部署为https后,原来的文章中很多地方还是引用的http的链接,怎么办呢?其实可以不用管的,但是觉得很不爽,强迫症嘛,理解一下。另外,如果链接是资源文件,比如js啊,iframe的src链接啊什么的,可能还会造成浏览器网址栏前面的绿色小锁消失,并提示“您与此网站建立的是私密链接,但网络上的某些用户也许能更改此网页的外观”,差不多就是这个提示了。这个听起来是比较严重,是因为页面上有些东西并没有通过https加密,所以从服务器到浏览器的过程中可能被篡改,这时浏览器就会认为不是绝对安全的,但是who care,小博客,没用户,没流量,谁吃饱了撑着会改呢?

下面还是说说怎么修改吧…可以通过修改主题中的function.php文件达到目的,找到function.php文件,在末尾的“?>”前加上如下代码(如果没有“?>”,那么下面的代码就加在最后),然后将我的网址juwends.com替换成自己的:

//=== 替换内容中http链接为https ===//
function my_content_manipulator($content){
 if( is_ssl() ){
 $content = str_replace('https://www.juwends.com', 'https://www.juwends.com', $content);
 $content = str_replace('https://www.juwends.com', 'https://www.juwends.com', $content);
 }
 return $content;
}
add_filter('the_content', 'my_content_manipulator');

加上这段代码后,就可以实现文章中的链接的http变成https了。

注意,这里只是修改了页面的展示,并没有修改数据库中的内容。

https部署折腾(四):修改wp-config.php设置wordpress的https访问

本文中所说的站点部署https是利用阿里云的CDN部署的https,我的理解是CDN上面的站点(缓存页面)是https访问,而部署在阿里云空间上的原始网站并不是https,还是http,这个http站点也就是CDN的回源站点。上述是我的理解,但是是否正确还需要再深入研究才能窥其真理。

因此,wordpress配置https就不能简单的在后台的设置里面将主页设置为https,因为这个站点其实是http的,如果配置成https,那么当访问https的时候,会先访问CDN,而CDN会回源,也就是会去找http的站点,这时回源站点又被设置为了https,那么又会被重定向到CDN,这样就出现了访问CDN的无限重定向,导致网页无法打开,或者某些文件无法加载的问题。

所以使用CDN部署的https必须将wordpress的后台主页设置为http。

然后设置https访问通过修改wp-config.php文件实现,找到这个文件,打开后在开头的“<?”下面添加如下代码即可(“//”后面的注释可以不用加,习惯加上注释,才知道是做什么的)

//=== 将用户界面与主页相关的http链接替换为https,后台不用更改主页地址 ===//
define('WP_HOME', 'https://'.$_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'https://'.$_SERVER['HTTP_HOST']);
//=== 设置https为开启 ===//
$_SERVER['HTTPS'] = 'ON';

保存后就可以通过https访问了,到这里,就设置完毕了。那么,再总结下:

1,wordpress主页在后台依然设置为http
2,在wp-config.php中添加代码实现https访问

https部署折腾(提纲):利用阿里云CDN将阿里云虚拟主机上的WordPress博客部署为https

这篇文章大体上是个提纲性的文章,将罗列我把Juwend’s部署为https的步骤,每一步都有直达教程的链接(如果没有就是还没有写…呵呵),下面我们就开始罗列:

  1. 申请startssl免费证书,包括:
    1. 安装openssl,制作私钥key和证书申请文件csr(教程:https部署折腾(二):OpenSSL通过PEM格式私钥生成用于申请SSL证书的CSR文件》)
    2. 注册startssl和申请证书(教程:https部署折腾(三):StartSSL申请免费SSL证书的方法》)
  2. 购买阿里云的CDN,配置阿里云的CDN(以下简称CDN)的https加速(教程待更新)
  3. 修改wordpress的文件,主要是下面两个文件:
  4. 修改.htaccess文件。部署CDN后,需要设置 带www的域名 的 CNAME 到阿里云CDN 上,其实就是将用户对网站的访问重定向到CDN的主机上,这里我只能设置 带www的域名,所以 没有www的域名 是不经过CDN的,所以要把 没有www的域名 的访问重定向到 有www的地址。
    修改.htaccess文件教程:https部署折腾(一):.htaccess配置重定向参数RewriteCond和RewriteRule解释

继续阅读

https部署折腾(一):.htaccess配置重定向参数RewriteCond和RewriteRule解释

对于完成一件比较麻烦的事,做完后是一定要写教程的,呃,其实应该是记录过程,也不是想教谁,只是希望以后自己再用的时候还找得到用法。话说过程是惊险刺激的,有时兴奋,有时却恨不得去屎… 而扫尾工作就是最枯燥到的了,比如现在… 但是事后不总结、不记录,那是永远无法成长的。就像我这次部署https一样,其实那篇发泄文(见《吐个槽,糟心的一天》)写完就打算放弃部署https了,结果文章结尾的时候提示了自己一个很重要的问题,最后找到了方法部署成功… 这个后期再说。

今天玩了下.htaccess,所以提前把这个写了,相当于是部署https的周边技术吧,有时间写一点,最后再汇总成如何部署https,我觉得这样不错,好了,说了这么多闲话了,开始教程吧。

.htaccess对于我来说就是用来做301重定向的,它的主要作用貌似也就是这个了。主要靠写在文件中的语句执行重定向,比如

<IfModule mod_rewrite.c> 
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这个是一个基本配置,将“/”和404重定向到/index.php去,我们可以看到语句有好几种,比较关键的是RewriteCond和RewriteRule。

先举个栗子:

RewriteCond %{HTTP_HOST} ^(juw)end(s)\.com.*$ [NC]
RewriteRule aa(.*)cc(.*)$ http://ww\./$2/$1/%1/%2 [R=301,L]

看起来是有点复杂,先看结果:

网址输入地址:juwends.com/aaa/bbb/ccc/?p=1
重定向地址:http://ww.///a/bbb/c/juw/s?p=1

继续阅读

HTTPS终于搞好了

日志

网站终于实现HTTPS加密访问了!!!

wordpress + 阿里云虚拟主机 + 阿里云CDN + startssl免费证书

看!那抹绿色的“https”和小锁多漂亮啊…

那抹绿色的“https”和小锁多漂亮啊

还是折腾了一天多吧,现在终于搞好了,上一篇文章就可以看出我搞的是多么的辛苦和郁闷…

https虽然配置好了,但是要想整站https还有很多地址要更改,也会有些插件不能再用了,过几天补教程,这里的坑可多着呢…

凌晨5点了… 该睡觉了。

吐个槽,糟心的一天

状态

今天搞了一天的https配置,证书也申请了,CDN也配了,最后配置上https用不上… 结果啥都没有搞出来… 真是很糟心的一天…

我用的是阿里云的虚拟主机,要使用https需要配置阿里云的CDN,于是开通了CDN。

还需要证书,又去startssl申请了免费证书,配置到CDN后,以为输入https://www.juwends.com就可以进入https模式了… 哪知各种问题,本该使用https的css文件依然是http… 还有好多文件url也是那样… 后台就更无语了,直接无限重定向,完全进不去…

然后,我就把整个站点下载到本地,在本地尝试配置https,结果配置完后什么问题都没有!!!f**k

也许是本地使用Apache直接配置的https,而阿里云虚拟主机使用的Ngnix+CDN间接配置的https的原因吧,也可能是wordpress的问题,想想,教程好像是hexo搭建的博客,然后使用的阿里云虚拟主机,hexo是静态页面,本来过场就少的多…

唉,想通了再研究吧,有时间学学php呢,哈哈哈

更改hosts访问谷歌显示“连接已重置”

更改hosts去访问谷歌,显示“连接已重置”,但是小伙伴们却可以…

查过之后,才发现原来要使用https访问,域名使用“www.google.com.hk”,输入“https://www.google.com.hk”后发现打开了谷歌!

那么要怎么设置才能默认使用https访问呢?

下面就说下Chrome的设置:

设置谷歌为默认搜索引擎

设置谷歌为默认搜索引擎

1,打开设置,找到“搜索”,单击“管理搜索引擎”

继续阅读

tomcat配置https

https是增加了用于对传输数据加密保证安全的SSL(Secure Sockets Layer)协议的http。https在传输数据之前需要客户端(浏览器或者其它实现)与服务端(网站或者其它实现)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议中使用了非对称加密,对称加密以及HASH算法。

继续阅读