加一把免费的小绿锁

第一篇日志里就说,要抽空加上小绿锁。今天抽了个小空,轻松加上,很容易。

主机环境:Centos 6.5
软件环境:jekyll 3.1.1,Nginx,搬瓦工内置SS

0x01 改SS默认端口

由于很早就在主机上跑SS,而默认第一个SS账号使用443端口,与TLS的默认端口重复,所以先要把SS的端口换了。

打开/etc/shadowsocks.json,把其中使用了443端口的账号随便换到其他端口去。比如,本来是

{
 "server": "0.0.0.0",
 "local_address": "127.0.0.1",
 "local_port": 1080,
  "port_password": {
     "443": "password"
 },
 "timeout":300,
 "method":"aes-256-cfb"
}

改成

{
 "server": "0.0.0.0",
 "local_address": "127.0.0.1",
 "local_port": 1080,
  "port_password": {
     "8999": "password"
 },
 "timeout":300,
 "method":"aes-256-cfb"
}

0x02 到Let's encrypt获取证书

在Let's encrypt的网站找到Get started的页面,VPS可以控制shell所以在这个页面使用推荐的certbot来做配置。

然而按照certbot的教学,运行./path/to/certbot-auto certonly使用交互式方式完成配置在我这行不通,报错说找不到nginx的html发布目录(也可能是我设置的比较奇葩?!),于是按照命令行的方式手工给配置。

  • 进入certbot-auto的安装目录
  • 运行配置如下
sudo certbot-auto certonly --webroot --webroot-path /home/deploy/your_site/_site --renew-by-default --email [email protected] --text --agree-tos -d example.com

其中_site为html发布目录,example.com为使用的域名

运行完成后在/etc/letsencrypt/live/example.com得到证书和私钥等一系列文件。

参考来源

0x03 配置Nginx

和楼上参考同一来源
不过我的Nginx目录结构不大一样,默认HTTP配置文件在/etc/nginx/conf.d/default.conf,而TLS的内容在/etc/nginx/conf.d/ssl.conf中,解除#的注释,按文中修改就好。
至于配置里的ssl_dhparam /home/deploy/dhparams.pem;使用更好的素数,有兴趣就加上。素数生成在certbot同一目录(似乎)。

0x04 配置证书自动更新

根据certbot的说法,由于letsencrypt的证书有效期是每三个月,所以忘性大的人最好能设成自动更新。
使用

$ ./path/to/certbot-auto renew --dry-run 

测试renew更新后,把renew加到cron计划任务中,方法是:

$ crontab -e

建立一个新的crontab,按照如下格式填写

# validate TLS certificate and try renew every 12 hours
# set time at 8:20 am/pm
20 8 * * * ./path/to/certbot-auto renew --quiet
20 20 * * * ./path/to/certbot-auto renew --quiet

意思是每天早晚8点20运行命令。然后:w存盘就好。
存储的设置在/var/spool/cron/下打开用户名的文件可以看到。

0x05 开启小绿锁的世界吧

重启SS和Nginx

# ssserver -c /etc/shadowsocks.json -d restart 
# nginx -s reload
Comments
Write a Comment
'