ubuntu安装Let’s Encrypt证书实测

作者:matrix 发布时间:2017年1月15日星期日 分类:兼容并蓄 零零星星

Let’s Encrypt证书出来已经有很长时间,之前用主机未到期,也就干瞪眼。
现在手上拿了一台有设备,其实算下来价格也都差不多,国外的速度是慢点,但是好处很多。

测试环境:
ubuntu 14 64bit
lnmp 1.3

获取证书

git clone https://github.com/letsencrypt/letsencrypt 
cd letsencrypt
./letsencrypt-auto certonly --standalone --email hhtjim@foxmail.com -d hhtjim.com -d www.hhtjim.com
# 若服务器已经占用80端口开启webserver则只需执行webroot:
#  ./letsencrypt-auto certonly --webroot --email hhtjim@foxmail.com -d link.hhtjim.com

执行完上面三个命令之后会有图形界面出现
gui图形界面
选择Agree之后出现这个也就完成了证书的获取

安装证书

修改域名对应下的nginx配置
进入/usr/local/nginx/conf/vhost目录找到和域名同名的conf文件
在server代码块中添加:

listen 443 ssl;
        #listen [::]:80;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/域名/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/域名/privkey.pem;

参考如下完整配置

server
    {
        listen 80;
        listen 443 ssl;
        #listen [::]:80;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/hhtjim.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/hhtjim.com/privkey.pem;

        server_name hhtjim.com www.hhtjim.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/hhtjim.com;

        include other.conf;
        #error_page   404   /404.html;
        include enable-php.conf;
        include wordpress.conf;

                if ($http_host !~ "^www.hhtjim.com$"){
                    rewrite  ^(.*)    https://www.hhtjim.com$1 permanent;
                }
                if ($scheme = "http"){ 
                        rewrite ^(.*)$  https://$host$1 permanent;
                }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/hhtjim.com.log;
    }

接着准备重启nginx:lnmp nginx restart

参考:loazuo

更新操作

按照网上大多执行的命令我这里就会出现交互界面,需要手动选择webroot目录

How would you like to authenticate with the ACME CA? 

       x x          1  Place files in webroot directory (webroot)           x x  
       x x          2  Spin up a temporary webserver (standalone)  


还好找到办法,只需要添加参数 --webroot -w 设置好存放web路径即可。最终参考如下

ubuntu下保存为sh文件。记得附加x执行权限。然后执行该sh文件即可自动更新证书.

#!/bin/sh
~/letsencrypt/letsencrypt-auto certonly --webroot -w /home/wwwroot/www.hhtjim.com/ --renew-by-default --email hhtjim@foxmail.com -d hhtjim.com -d www.hhtjim.com && lnmp nginx restart

若报错Failed authorization procedure...则需要修改-w参数为网站根目录
如:

-w /home/wwwroot/hhtjim.com/

且nginx配置中将.well-known加入白名单:

location ~ /.well-known {
            allow all;
    }

参考:
http://letsencrypt.readthedocs.io/en/latest/using.html
https://www.ubock.com/article/25
https://stackoverflow.com/questions/42269107/using-certbot-to-apply-lets-encrypt-certificate-failed-authorization-procedure

最后的定时执行

修改定时任务 crontab -e
0 0 1 * * /root/updateLetsEncrypt.sh #每月1号执行sh脚本

重启定时服务 /etc/init.d/cron restart

peace

Let’s Encrypt 项目提供免费的SSl证书

作者:matrix 发布时间:2015年9月15日星期二 分类:兼容并蓄 零零星星

官网:https://letsencrypt.org
github: https://github.com/letsencrypt/letsencrypt
letsencrypt

这将表示如果一个网站只是需要最基本的HTTPS加密,那么将无需任何花费购买SSL证书。

Mozilla、思科、Akamai、IdenTrust、EFF 和密歇根大学研究人员宣布了 Let’s Encrypt CA项目,计划为网站提供免费 ssl 证书,加速将 Web 从 HTTP 过渡到 https

上个月才看到了这个消息,大咖阵容提供的公益项目。之前说好的9月份发布,怎么又推迟到了Q4 2015。
网站使用https协议非常不错 。至少比普通网站多了一个绿色的标识,好看还安全~不容易被『挤挨服达不溜』监听到通讯内容。
BUT网站使用https协议必须要有ssl证书,大多都是收费的。不过目前也有免费的,沃通、CloudFlare。。。。。

沃通这些没用过,看到有这么好的公益项目那当然是首推!!值得等待。

Postscript:百度在前几个月都默默启用了全站SSL

阅读剩余部分 »

正确OpenWeiPN GUI上网姿势

作者:matrix 发布时间:2015年6月23日星期二 分类:兼容并蓄

使用WeiPN Gate Client高科技上网的时候发现还有OpenVPN配置文件这种东东。没明白怎么用就查了查。原来还有个比较不错的上网选择,使用OpenWeiPN GUI。

OpenWeiPN GUI下载

官网http://openvpn.net/index.php/open-source/downloads.html
百度网盘http://pan.baidu.com/s/1FbrzC

使用

1.安装完成OpenWeiPN
2.找到软件安装目录下的config文件夹
README.txt
This directory should contain OpenVPN configuration files
each having an extension of .ovpn

When OpenVPN is started as a service, a separate OpenVPN
process will be instantiated for each configuration file.
意思就是喊你把.ovpn文件放置在此目录(config文件夹)

3.获取.ovpn文件
如果你有的话那就好,没有就请选择合适的上网地点:http://130.158.6.78/cn/
下载其对应的配置文件(.ovpn文件)到config文件夹。

4.打开软件OpenWeiPN GUI,最好请使用管理员权限运行
5.右键点击软件托盘图标选择好你的配置文件然后点击connect
右键点击软件托盘图标

怕是以后地址被qiang了,可以现在订阅他们的邮件。
http://130.158.6.78/cn/mail.aspx

参考:http://130.158.6.78/cn/howto_openvpn.aspx

PHP递归函数内的静态变量

作者:matrix 发布时间:2015年6月20日星期六 分类:兼容并蓄 零零星星

//静态变量的例子

/**
 * 将数组转换为字符
 *
 * 用于缓存
 *
 * @param $data
 * @return string
 */
function philnaArray2String($data, $returns = '')
{
    static $t = 1;
    $tabType = " ";
    $tab = str_repeat($tabType, $t);
    $data = (array)$data;
    foreach ($data as $key => $value) {
        if (is_array($value)) {
            $t++;
            $returns .= "$tab'" . $key . "' => array(\n" . philnaArray2String($value) . "$tab),\n";
        } else {
            if (!is_bool($value)) {
                $value = "'" . addslashes($value) . "'";
            }
            $returns .= "$tab'" . $key . "' => $value,\n";
        }
    }
    $returns = substr_replace($returns, '', -2, -1);
    return $returns;
}

说明:
上面php代码中的$t被static修饰,即为静态变量
静态变量在函数执行完毕后不会释放,会继续累加下去
赶脚非常合适在递归函数中用

参考:http://blog.csdn.net/shaerdong/article/details/8545874

win和linux的php异或运算结果不同

作者:matrix 发布时间:2015年6月17日星期三 分类:兼容并蓄 零零星星

一个获取key的函数(模拟js的php代码)在本地测试成功,而在服务器上失败。
逐行die()之后发现问题在于$b ^=4294967295;之前获取的$b都没问题,可到了这里就结果完全不一样。

win

<?php
$a = -38622 72608;
$b = 471468;
$c = $a ^ $b;
echo $c;
//Q1:
//本地这是5.2.14的php,Win,显示432886796;
//服务器上5.2.14的php,linux,显示-3862080500;
//Q2:如果将^ 换成xor
//本地显示-3862272608
//服务器显示-3862272608
?>

真是狗日的xor仙人板板。为什么换成xor结果和^又不同。
难道xor不是异或。。。 😕

Q1:幸好我不是第一个发现。算是有答案:
php中一个整数能表示的范围是2147483647~-2147483647
在linux环境下,php整数溢出的时候,其结果是不可靠
php提供了GMP库进行精确计算大数据
如果你的php开启了GMP:gmp_xor()进行xor运算

Q2:无解
将^ 换成xor运算win和linux的结果都一样。但是为毛线它又和^的结果不同。。。
应该也是整数溢出吧。。。懒得想了

参考:
php异或运算的不可靠性
http://php.net/manual/zh/ref.gmp.php
http://bbs.csdn.net/topics/390566090

将BCS的bucket文件保存到本地[PHP]

作者:matrix 发布时间:2015年6月3日星期三 分类:兼容并蓄 零零星星

收到百度BCS 6月30日停服提醒邮件,说是要停止服务,请自重。让咱BCS迁移到BOS...

BCS的bucket是以前创建bae时设置的,保存了一些图片文件

怎样把云存储的文件备份到本地是一个问题啊。毕竟一个一个下载太麻烦,文件有些多。。。

BCS控制台:http://developer.baidu.com/console#app/project

打开BCS控制台可以查看你的bucket名称以及API Key 和Secret Key。如果里面的文件有点多,且你想保存下来

下载 :http://pan.baidu.com/s/1mgMhp92

使用说明:

请确保解压后有个空的TTSEE文件夹,它用来存放下载的文件

只能保存一个bucket里面的文件,bucket有多层文件夹应该(我没试过)能正常使用的。

//$bcsobj->list_object_by_dir($bucket,'/',$list_model = 2);

解压后配置好bcs/conf-inc.php参数:项目对应的AK 公钥和SK私钥(百度开发者中心里复制)

调用:127.0.0.1/download.php?bucket=bucket名称

php中用到了file_put_contents函数:

$file = file_get_contents('http://bcs.duapp.com/newbuck'.$objest);//读取远程文件
file_put_contents('TTSEE'.$objest,$file);//保存到同级TTSEE目录

参考:

http://www.cnblogs.com/m199/p/3450675.html

http://www.jb51.net/article/57127.htm

PS:
150710后续更新
把bcs文件下载到本地电脑后再上传到主机空间。
之后用sql语法批量替换旧url。

UPDATE wp_posts 
SET post_content = ( Replace (post_content, 'bcs.duapp.com/newbuck/', 'www.hhtjim.com/wp-content/uploads/2015/bcsfile/') )
WHERE Instr(post_content, 'jpeg') > 0 
 OR Instr(post_content, 'jpg') > 0 
 OR Instr(post_content, 'gif') > 0 
 OR Instr(post_content, 'png') > 0

参考:
https://free.com.tw/moving-to-https-on-wordpress/

wordpress导航菜单链接处添加nofollow

作者:matrix 发布时间:2015年5月29日星期五 分类:Wordpress 兼容并蓄

WordPress后台选项  外观-〉菜单处可以给导航栏自定义URL,但是个别链接需要添加rel="nofollow"的时候会发现没有办法。其实WordPress是有这个选项的,只是隐藏了。

点击顶部的“显示选项”展开, 链接关系网(XFN)处打勾就可以了。

如果是4.2的版本会无法点击“显示选项” ,可以审查元素手动修改DOM来临时解决问题: 阅读剩余部分 »

获取豆瓣音乐下载地址

作者:matrix 发布时间:2015年5月20日星期三 分类:兼容并蓄

豆瓣音乐的mp3链接没法外链播放,只有下载用。
例如http://music.douban.com/programme/1312655?sid=2135789#play
打开地址会播放袁惟仁的木吉他。
右键点击“4.木吉他- 袁惟仁”审查元素

如图:

审查元素 可以看到

<div class="song-item" data-index="3" data-title="木吉他" data-performer="袁惟仁" data-songid="2135789" data-plength="241" data-ssid="1b59">

 
其中2135789和1b59是下一步需要的
打开http://music.douban.com/j/songlist/get_song_url?sid=2135789&ssid=1b59
看到{"r":"http:\/\/mr3.douban.com\/201505162003\/579f892209df60970f186024b25c9dee\/view\/song\/small\/p2135789.mp4"}
其中r对应的键值就是这首歌的链接地址(请去掉反斜杠)。
其实也可以简单点,直接审查元素打开后点击NetWork,只要该页面有歌曲播放就会显示出歌曲的地址。
PS:只需要音乐ID就能拼接出音乐地址
http:/ /mr5.douban.com/{任意12位\d,即日期:20150515}/{任意32位\w}/view/song/small/{音乐ID}.mp3