天问

acme.sh 安装SSL 证书

acme-tiny申请证书:

前几个网站采用acme-tiny方案安装证书,非常便捷。但是由于git.yoqi.me这个网站架构有点不同,项目采用go语言后端,同时qicdn.yoqi.me提供https方式的cdn服务。那么两个域名都需要申请ssl,直观方向就需要修改acme-tiny项目了。。回顾一下 Let’ s Encrypt证书申请步骤:

(1)创建一个account.key

# openssl genrsa 4096 > account.key

(2)创建一个domain.key这个作为域名私钥

# openssl genrsa 4096 > domain.key

(3)创建domain.csr作为域名公钥申请的证书请求文件,这个文件配置了一些域名/联系人相关信息(比如用到domain.key)。

# openssl req -new -sha256 -key domain.key -subj "/CN=qcdn.git.yoqi.me" > domain.csr

(4)申请证书

python acme_tiny.py --account-key ./git.yoqi.me/account.key --csr ./git.yoqi.me/domain.csr --acme-dir /acme-tiny/challenges/ --contact lyq@yoqi.me > ./git.yoqi.me/signed.crt

这一步是重点,domain.csr发送证书请求,得到一个token,把这个token放到指定web目录,如果验证通过了,则下发公钥证书。

那么qicdn.yoqi.me使用cdn服务器,所以无法自动放置token到指定web目录。至少需要开发工具。

(5)生成证书链

#wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem

#wget -O - https://letsencrypt.org/certs/isrgrootx1.pem > root.pem#cat intermediate.pem root.pem > full_chained.pem

cat ./git.yoqi.me/signed.crt intermediate.pem > ./git.yoqi.me/chained.pem

(6)配置证书,重启web容器

这部分不说了。

 acme.sh申请证书:

上面acme-tiny方式由于,cdn域名无法自动放置token,为此找到acme.sh这个项目,同样非常简洁的证书申请工具。把整个流程再走一遍发现非常简单:

(1)安装acme.sh

curl https://get.acme.sh | sh
source ~/.bashrccertbot

这个安装不像certbot这个项目那样需要很多依赖。

(2)申请证书

acme.sh --issue -d git.yoqi.me --webroot /opt/gogs/public/

(3)安装证书

acme.sh --installcert -d git.yoqi.me --keypath /home/ubuntu/www/ssl/www.your-app.com.key --fullchainpath /home/ubuntu/www/ssl/www.your-app.com.key.pem --reloadcmd "sudo service nginx force-reload"

(4)sudo免密码

这里就要提一嘴,普通用户权限无法执行重启nginx,所以需要配置免密码sudo命令。

sudo visudo ubuntu ALL=(ALL) NOPASSWD: /usr/sbin/service nginx force-reload

(5)dhparam 文件

openssl dhparam -out  /home/ubuntu/www/ssl/dhparam.pem 2048

nginx添加配置:

server {
listen 80 default_server;
# 新增
listen 443 ssl;
ssl_certificate /home/ubuntu/www/ssl/www.your-app.com.key.pem;
ssl_certificate_key /home/ubuntu/www/ssl/www.your-app.com.key;
# ssl_dhparam
ssl_dhparam /home/ubuntu/www/ssl/dhparam.pem;
}

 

dhparam这个变量文件还不知道干嘛用的,生成非常慢。

重点都提出来了,其他文档可以查看官方介绍:

https://github.com/Neilpang/acme.sh/wiki/Blogs-and-tutorials

博客地址:http://blog.yoqi.me/?p=13080
扫我捐助哦
喜欢 1

这篇文章还没有评论

发表评论