一、Shadowsocks

写本文时已弃用该方式

二、V2ray

SSL证书相关

证书配置

//新建一个文件夹用于存放证书
sudo mkdir /usr/local/etc/certfiles
//将证书文件夹所有者改为acme,使得用户acme有权限写入证书
sudo chown -R acme:acme /usr/local/etc/certfiles

//切换到用户acme
sudo su -l -s /bin/bash acme
//安装acme.sh
curl  https://get.acme.sh | sh
//退出当前用户
exit
//再次切换到用户acme
sudo su -l -s /bin/bash acme

两次切换用户的操作不能省略,因为安装完acme.sh之后要重新登录当前用户,否则无法识别出acme.sh命令

cloudflare Global CA Key

需要让acme.sh自动管理你的证书,所以需要添加cloudflare的API。登录cloudflare之后定位到:头像>>My Profile>>API Tokens。可以看到这里有两个API Keys。我们需要的是Global API Key。Origin CA Key是不可以使用的。点击View即可查看,注意查看之后自己保存下来,每天可查看次数是有限制的。
示例代码需要手动修改的地方都使用<>包裹。

export CF_Key="<Your Global API Key>"
export CF_Email="<Your cloudflare account Email>"
//执行如下命令(注意域名<coffeey.tk>改为你自己的域名),等待一会儿。
acme.sh --issue --dns dns_cf -d <coffeey.tk>

申请失败怎么办?证书申请失败的可能性一般有:1. CF_Key或CF_Email填写错误;证书申请次数超限等。此时切忌反复尝试,原因是证书每一个周申请次数是有限制的(20次),如果超限了就需要等一个周或者更换域名了(这个限制是争对每一个子域单独做的限制,所以万一超限了还可以用子域名继续部署)。解决方案是:在上述命令后加–staging参数继续测试。测试通过之后,删除上图所示四个证书文件并取消–staging参数再执行一次。–staging参数申请的证书只作为测试用,客户端是无法认证通过的(提示SSL handshake failed: tlsv1 alert unknown ca),所以使用–staging参数申请到了证书之后要去掉–staging参数重新申请一次。

//使用acme.sh将证书安装到certfiles目录,这样acme.sh更新证书的时候会自动将新的证书安装到这里
acme.sh --install-cert -d <tdom.ml> --key-file /usr/local/etc/certfiles/private.key --fullchain-file /usr/local/etc/certfiles/certificate.crt
//配置acme.sh自动更新和自动更新证书
acme.sh  --upgrade  --auto-upgrade

权限修改

//将证书文件夹所在用户组改为certusers
chown -R acme:certusers /usr/local/etc/certfiles
//赋予证书文件夹组内用户读取权限。
chmod -R 750 /usr/local/etc/certfiles
//退出用户acme
exit

Trojan

暂未应用
https://trojan-tutor.github.io/2019/04/10/p41.html