证书的签发与安装

签发 Let's encrypt 证书

网上有很多现成的工具,这儿使用 acme.sh ,根据README

curl https://get.acme.sh | sh

我几次通过这样安装,发现alias都不能正常工作,所以可能需要再来这么一句

alias acme.sh=~/.acme.sh/acme.sh

通过静态的web目录签发

acme.sh --issue -d aa.com -w /home/wwwroot/aa.com

通过443端口签发(用于80端口用来反代后端的情况)

acme.sh  --issue  -d aa.com  --tls

安装证书

acme.sh --installcert -d aa.com \
--keypath  /path/to/keyfile/in/apache/nginx  \
--fullchainpath path/to/fullchain/certfile/apache/nginx \
--reloadcmd  "service apache2|nginx reload"

其实只需要key和fullchain就好,注意的是,需要指向文件而不是目录。

通过提交CSR签发证书

需要用到openssl ,首先生成key

openssl genrsa -out domain.com.key 2048

然后通过key生成csr

openssl req -new -sha256 -key domain.com.key -out domain.com.csr

其中需要注意的是Common Name ,如果是想签发wildcard ,需要写为*.domain.com

当签发的证书下来之后,保存为.crt ,同时也可以下载一份根证书,然后合并成一个完整的证书链

cat your_domain_name.crt DigiCertCA.crt >> bundle.crt