分类
微信小程序

许巍:此时此刻

《此时此刻》是歌手许巍于2012年12月12日发行的专辑。共收录了10首歌曲。该专辑在2013年获得华语金曲奖十大华语唱片奖项。

此刻谁在茫茫人海之中
在这浩瀚的宇宙
蓝色的城市
只是生命的旅程
瞬间的停留

无论欢乐和悲伤
我已不会再回头
只是自在向远方
也来不及感伤
如此难舍的美丽
萦绕我脑海
难以挥去的不安
曾在我心里

无论欢乐和悲伤
我已不会再回头
只是寂静向远方
这光明的旅程
此刻谁在群山云海之巅
自在的心畅游天外之天
此刻谁在清晨伫立海边
迎着朝阳缓缓升起
心中开启无言欣喜

此刻谁在茫茫人海之中
久久凝视日落向着天边
心中绽放自由的梦想
默默思念旅行的终点
此刻谁在茫茫人海之中
久久凝视日落向着天边
心中绽放自由的梦想
默默思念旅行的终点

分类
微信小程序

使用阿里云免费SSL证书实现全站HTTPS化

苹果和小程序开发都开始要求使用https服务,而且运营商广告注入也越来越疯狂。所以,实现网站https很用必要。

实现https就需要一个SSL证书。证书大部分都很贵,不过也有一些免费的证书服务供个人开发者使用,这是一个大好消息。比如腾讯云,七牛云,阿里云。

我们今天就拿阿里云来实践一下,因为我的服务器也在这里。

原文链接:https://weiya.me/item/66.html

购买SSL证书

首先第一步就是获取一个证书。来到阿里云购买证书页面。传送门:阿里云免费SSL地址

选择如下图的配置。其他的也买不起o(╯□╰)o

3726587305-5902ccf3c5fb9

点击立即购买,然后下一步,直接支付就可以了。

3918849183-5902ccf468b5c

看下支付成功

333245755-5902ccf358676

之后,去阿里云控制台,选择菜安全(云盾)->证书服务,可以找到刚刚的购买好的订单。

1862708293-5902ccf368e8b

刚刚买好的订单,证书状态为待完成。需要点击补全链接进行补全。

补全信息

补全信息就是填写一些你的域名信息和你的个人信息,顺带验证下域名是你的。

第一步是填写域名。这里不能写通配符域名,需要写普通域名,就是类似于www.baidu.com或者images.baidu.com这种。

所以,当你需要多个二级域名的时候,你需要购买多个免费的SSL证书。

2906114382-5902ccf806453

下一步,填写个人信息。

4102371032-5902ccf445e3b

这里面要注意,红框内的域名验证类型。

  • DNS:是在域名解析记录里面添加一条记录来证明域名是你的。
  • 文件:是传一个文件到你的域名根目录方式来证明域名是你的。

其中如果选择DNS的,并且域名在阿里云的可以直接勾选下面的复选框,这样阿里云就会自动帮你填写域名解析记录,全自动。

点击下一步,进入生成CSR界面,这里为了简单,选择系统生成。点击创建自动创建。

2977272757-5902ccf3a9c74

查看状态

完成上面所有工作后。回到证书订单列表,信息会显示在审核中状态。点击进度可以查看之前步奏是否有问题。

如下状态是成功:

2811423944-5902ccf483ea6

如果点击进度,弹出对话框如下。

11306661-5902cd052b002

注意红色字。说明,系统在域名解析中添加TXT记录存在冲突。那么说明你的域名中存在同名的CNAME记录。因为,CNAMETXT同名会冲突。

我们去域名解析界面看下:

622899831-5902cd054c5cf

果然,这里存在同名的CNAME。解决方案:

  1. 先删除CNAME,添加TXT记录,等到域名授权验证通过。这时再删除TXT,把CNAME写回来。
  2. 先把CNAME改为A记录(因为A记录和TXT不冲突),然后添加TXT。等到审核通过同上。

一切问题都解决了,下面就等签发。

安装服务器证书

等到签发完成后,我们直接点击对应域名的下载链接。

1163804853-5902cd0639e0f

跳转到该界面,选择你对应的服务器,下载证书。我这里是apache

1523519849-5902cd06d6303

下载完成后,文件包内应该有4个文件。

2576659632-5902cd062e390

我们去服务器apache安装的目录创建一个文件夹cert,在里面再创建一个文件夹admin(这里为了放多个域名证书,便于管理)。将刚刚下载的4个文件全部传到服务器。

提示: ubuntu服务器的apache默认安装目录为/etc/apache2

1548338360-5902cd0635721

修改虚拟主机配置

证书文件传好了之后,我们需要使用证书。这里是在apache的配置文件中引用。

首先看一下之前的apache虚拟主机配置:

<VirtualHost *:80>
    DocumentRoot /var/www/admin/
    ServerName admin.bidianer.com
    <Directory "/var/www/admin/">
        Options FollowSymLinks
        AllowOverride all
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog "/mnt/bidianer_error.log"
    CustomLog "/mnt/bidianer_runtime.log" common
</VirtualHost>

这里的虚拟主机是80端口,而https走的是443接口,所以我们不能再使用之前的80端口配置。需要重新配置。但是,如果我们还想保留http访问,也想用https访问,那么就保留这个配置,再新建一个配置。

<VirtualHost *:443>
    DocumentRoot /var/www/admin/
    ServerName admin.bidianer.com
    <Directory "/var/www/admin/">
        Options FollowSymLinks
        AllowOverride all
        Order allow,deny
        Allow from all
    </Directory>
        SSLEngine on
        SSLProtocol TLSv1 TLSv1.1 TLSv1.2 SSLv3
        SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
        SSLCertificateFile cert/admin/public.pem
        SSLCertificateKeyFile cert/admin/214082306780502.key
        SSLCertificateChainFile cert/admin/chain.pem
    ErrorLog "/mnt/bidianer_error.log"
    CustomLog "/mnt/bidianer_runtime.log" common
</VirtualHost>

解释: 上面这个配置是监听443端口,所以当使用https访问的时候会使用该配置。该配置大部分和上面的都相同,但是却多了这一段代码。

    SSLEngine on
    SSLProtocol TLSv1 TLSv1.1 TLSv1.2 SSLv3
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
    SSLCertificateFile cert/admin/public.pem
    SSLCertificateKeyFile cert/admin/21408*****0502.key # 这里我隐藏了部分数字
    SSLCertificateChainFile cert/admin/chain.pem

这段代码就是告诉服务器使用刚刚我们下载好的证书。把其中的地址改为你的就可以了(尤其注意那串数字文件要记得改)

接下来重启apache服务器

/etc/init.d/apache2 restart

打开浏览器,使用https协议访问你的网站(这个https生效需要时间,时间不确定,所以不会立即可以访问)。我的https://www.bidianer.com。绿色图标出现,一切ok

2769210799-5902cd0612243

CDN使用HTTPS

这部分内容不是必须的,是你使用了CDN服务才会用到

如果你在阿里云买了CDN,那么如何使用HTTPS。这个方法很简单,阿里云已经提供了。

在开始之前,首先记得把你的相关域名解析到阿里云的CNAME,这样才可以使用CDN,再谈CDN使用HTTPS

第一步,打开你的CDN域名列表

2638253694-5902cd0833a6a

点击相关域名的配置链接,进入配置页面。

3839584608-5902cd0a68431

 

主要需要配置红框内两个内容。

回源设置

第一个回源设置

723767341-5902cd089b652

  • 其中源站信息,有3种选择,这里比较常用的是IP,选择后填写IP地址即可,端口选择443端口
  • 回源HOST,开启,选择加速域名。
  • 回源方式,开启协议跟随回源

这里说一下回源HOST,这个最好选择默认的加速域名,不要选择自定义,如果你当前的域名是www.bidianer.com,你自定义回源HOST为bidianer.com,那么在你网站中获取的网站host信息就是bidianer.com而不是www.bidianer.com

比如PHP中$_SERVER['HTTP_HOST']就是bidianer.com,而不是www.bidianer.com,会出问题有时候。

HTTPS设置

第二个HTTPS设置

963193861-5902cd094f584

  • 点击状态开启即可。
  • 选择你之前创建的相关域名证书。
  • 强制跳转可以选择自己想要的。

这里说下证书名称要和你的证书列表对应起来,否则会出错。证书名称在这里:

1046749067-5902cd08984fa

开始你的可能是一串乱七八糟的数字,最好修改一下,后面选择证书不会出错。

选错了证书会有啥问题?

2401599642-5902cd092923c

浏览器地址栏会提示:

image

用户打开会是个警告页面,网站就倒闭了。

最后提醒下,CDN使用HTTPS也会有很长时间的延迟,不要着急

严颖,星空幻颖

2017.4.27

分类
微信小程序

WordPress整站轻松开启HTTPS一站式SSL证书服务_实现网站安全加密

近两年来网站开始https已经成为势趋。
早在2014年google Chromium安全团队提议将所有的HTTP协议网站标注为不安全。
现在,Chrome浏览器已经开始执行这一标准了。从 Chrome 56 开始,任何网页,如果有输入密码或者信用卡资料的,却没有使用HTTPS,将被 Chrome浏览器标识为不安全;逐步的,任何没有使用 HTTPS 协议的网页chrome浏览器都会被标识为”不安全”,或者 “Not Secure”。

wordpress_ssl_https

HTTP是目前互联网上使用最广泛的传输协议,但是它没有安全加密功能,很容易遭遇劫持,导致用户流量、隐私被窃。HTTPS则会全程加密传输,并有第三方安全机构认证的数字证书。特别在中国,某些ISP服务商会通过宽带上网服务,进行流量劫持,插入广告代码,使用HTTPS后,这些损招就无计可施了。

搜索引擎逐步支持HTTPS网站的收录,HTTPS作为排名的因素之一,在SEO方面越来越重要。google搜索会把HTTPS作为排名的因素之一,虽然当前只是比较小的因素。2015年百度站长平台发布消息,百度对https页面优先收录、优先排名:

1、从相关性的角度,百度搜索引擎认为权值相同的站点,采用https协议的页面更加安全,排名上会优先对待。
2、此次技术升级之后,百度搜索将同一个域名的HTTP版和HTTPS版作为一个站点来处理,优先收录HTTPS页面。

2017年1月1日,苹果将对Apple Store里所有应用启用一项名为ATS的重要安全功能(App Transport Security,应用程序安全传输,简称 ATS),在启用 ATS 之后,它会强制开发者的应用通过 HTTPS(而不是 HTTP)连接网络服务。

我的网站是基于wordpress构建的,整站转换成HTTPS,可以轻松搞定。

SSL证书的选择

1、对于国内用户来说,可以实用与百度云、腾讯云、阿里云合作的赛门铁克签署的证书,一年免费,申请和使用都很方便。

2、自从Let’s Encrypt免费签发证书后,SSL证书的价格就开始平民化了,有不少付费和收费的SSL可以选择。Let’s Encrypt的证书虽然只有90的天,不过自动续期也很方便,对于小站来说,是很不错的选择。Let’s Encrypt的申请安装方法可以参考文章:为你的Blog快速开启https支持。在安装证书的过程中要注意:需要停止web 服务器,比如 Nginx 、Apache ,否则可能报端口占用的错误。

3、因为篡改、伪造等问题,慎重选择沃通、StartCom颁发的证书。
1)2016年9月30日,苹果 Apple于iOS可信根证书列表中宣布:屏蔽其对中级CA WoSign CA Free SSL Certificate G2( CA 沃通免费 SSL 证书 G2)的信任。

2)2016年10月24日,Mozilla在其安全博客公布了对沃通CA和StartCom的最终处理措施:Mozilla 决定不再信任目前包含在 Mozilla 根证书项目中的沃通根证书(Root certificate)和StartCom 根证书今后颁发的服务器证书。即:它不再信任在10月21日之后签发的沃通CA证书,并从 Firefox 51 起移除对4个沃通根证书的信任。

3)2016年10月31日,Google在其安全博客中宣布了:从Chrome 56开始,不再信任WoSign和StartCom在2016年10月21日后颁发的证书。

4.SSL 要用 ECC 证书,即使因为某种原因必须要用 RSA 证书的,那么也要用双证书,就是 ECC + RSA两个证书。在加密算法上,要去掉 RC4。

5.只使用 TLS 协议,包括 TLSv1.0, TLSv1.1,TLSv1.2。禁止 SSL 协议。

6.SSL 证书的签名算法,要使用 SHA-2,不要使用已经被证明有严重缺陷的 SHA-1了。

注意:一定要保证https和http两种方式都能正常访问网站,才能改这个配置,否则可能导致网站无法访问。

通过上面的设置,绝大部分导航中的链接就由wordpress系统自动改为HTTPS版本。
2、对于正文中的内部链接需要手工修改,修改的方法有两种:
1)直接在数据库中更新,更新的sql如下:

update wp_posts set post_content = replace(post_content, ‘https://www.watch-life.net/’,‘https://www.watch-life.net/’)

对于数据库不熟悉的站长不推荐这种方法,对数据库错误的更新对网站可能是毁灭性的打击,建议更新前最好备份数据库。
2)利用wordpress提供的api来重写链接。在使用的主题(themes)的目录下的 function.php加入如下代码:

//转换http为https
function change_ssl(){
if( is_ssl() ){
function change_ssl_main ($content){
$siteurl = get_option(‘siteurl’);
$upload_dir = wp_upload_dir();
$content = str_replace( ‘http:’.strstr($siteurl, ‘//’), ‘https:’.strstr($siteurl, ‘//’), $content);
$content = str_replace( ‘http:’.strstr($upload_dir[‘baseurl’], ‘//’), ‘https:’.strstr($upload_dir[‘baseurl’], ‘//’), $content);
return $content;
}
ob_start(“change_ssl_main”);
}
}
add_filter(‘get_header’, ‘change_ssl’);

这个方法优点是可逆,不会对网站的数据库有什么影响,可以使网站在HTTP和HTTPS之间自由转换,推荐使用这种方法。

调整完内部链接后,检查整个网站的页面,包括首页,栏目页,内容页,sitemap,页面head部分内容,比如:css,js,canonical等,是否都转换成了HTTPS版本。

整站301跳转

整站如果启用HTTPS后运行正常,就可以开始考虑进行整站301跳转了。如果是Apache服务器,在.htaccess文件添加如下代码:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.watch-life.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^watch-life.net [NC]
RewriteRule ^(.*)$ https://www.watch-life.net/$1 [L,R=301]

如果是Nginx服务器,在nginx.conf配置如下代码:

server {
listen 80 default_server;
server_name www.watch-life.net;
return 301 https://$server_name$request_uri;
}

以上代码,更换相应的域名即可使用。注意修改或增加配置代码后,需要重启web 服务器。重启后,访问原来HTTP的版本,看是否301跳转为HTTPS的版本。

自此,WordPress整站开启HTTPS开启工作全部完成。后续就是观察各大搜索引擎抓取、收录的情况。