我们一般用以下几条指令来申请SSL,并实现自动续期:
安装certbot并申请ssl证书
1、 首先,添加存储库:sudo add-apt-repository ppa:certbot/certbot
2、 安装Certbot的Nginx软件包:
sudo apt install python-certbot-nginx
3、 使用Certbot自动完成SSL证书申请和配置,Certbot会自动修改你的nginx配置文件,替换example.org和api.example.org为你的域名和二级域名。
sudo certbot --nginx -d example.org -d api.example.org
按照英文的提示配置吧,有几个地方要填和选择,比如邮箱等,其它有(A)gree的选择输入A,有(Y)es的选择输入Y即可,需要注意的是:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
在这一步时,您可能会需要选择1,如果选择2的话,Certbot会自动修改你的nginx配置文件,所有的非SSL请求都会被自动转发到SSL,如果您希望同一个域名既能用于WS,例如命令行钱包,也能用于HTTPS的网页钱包等,则选1,否则选择2。
之后会自动注册,完成。
因为证书使用周期有限,需要设置certbot自动续约证书:
sudo certbot renew --dry-run
但在阿里云、GCP的ubuntu16.04平台配置时遇到了一些安装问题,不像vultr、DO安装时那么顺利。解决方案如下:
问题1:sudo add-apt-repository ppa:certbot/certbot
时报错sudo add-apt-repository command not found
解决:apt install apt install software-properties-common
问题2:sudo apt-get install python-certbot-nginx
时报错Unable to locate package python-certbot-nginx
、Package python-certbot-nginx is not available, but is referred to by another package.
等
解决:apt-get clean
apt-get update
apt-get upgrade
对了 阿里云上部署SSL的时候我还犯了一个傻逼的错误,跟大家分享下。
nginx配置好以后ws的可以访问,wss却不行。
最后发现,原来是没有在阿里云网络安全组规则中加入443端口。。。
参考:
https://www.jianshu.com/p/c16cd8135aa2
https://community.letsencrypt.org/t/sudo-apt-get-install-python-certbot-nginx-unable-to-locate-package-python-certbot-nginx/41301/5