Let's Encrypt SSL证书申请安装

操作系统:Centos 7.5 64位

Web容器:Tomcat 8

  1. git安装

    #检查系统是否安装git,如果已经自带有git会出现git版本号,没有则需要我们自己安装
    git  --version 
    #git 安装
    yum install git


  2. Python是否为2.7版本,不是则安装2.7

    python -v


  3. 使用git下载脚步

    git clone https://github.com/letsencrypt/letsencrypt


  4. 进入下载的目录

    cd letsencrypt


  5. 使用letsencrypt-auto工具获取证书
    此工具有以下几个重要的参数:

    run:获取并安装证书到当前的Web服务器
    certonly:获取或续期证书,但是不安装
    renew:在证书快过期时,续期之前获取的所有证书
    -d DOMAINS:一个证书支持多个域名,用逗号分隔
    --apache:使用 Apache 插件来认证和安装证书
    --standalone:运行独立的 web server 来验证
    --nginx:使用 Nginx 插件来认证和安装证书
    --webroot:如果目标服务器已经有 web server 运行且不能关闭,可以通过往服务器的网站根目录放置文件的方式来验证
    --manual:通过交互式方式,或 Shell 脚本手动获取证书

    本次使用的是standalone方式进行验证,以下域名和email替换成你的即可:

    ./letsencrypt-auto certonly --standalone --email youremail@xx.com -d www.xx.com

    standalone方式验证会启动一个webserver,占用80端口,所以当前运行的tomcat要关闭,否则验证不了。申请证书的域名要解析到你的这个服务器,否则也无法验证。

    推荐使用webroot方式验证,输入以下命令

    ./letsencrypt-auto certonly --webroot --email youremail@xx.com -d www.xx.com

    回车后,会提示让你输入web根目录,输入后会在根目录下生成.well-known目录和相关文件,验证完成后会自动删除。

  6. 生成成功的提示
    出现以下提示表示成功,进入指定目录即可找到证书。

    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at:
       /etc/letsencrypt/live/www.xx.com/fullchain.pem
       Your key file has been saved at:
       /etc/letsencrypt/live/www.xx.com/privkey.pem
       Your cert will expire on 2019-02-03. To obtain a new or tweaked
       version of this certificate in the future, simply run
       letsencrypt-auto again. To non-interactively renew *all* of your
       certificates, run "letsencrypt-auto renew"
     - If you like Certbot, please consider supporting our work by:
    
       Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
       Donating to EFF:                    https://eff.org/donate-le



  7. 将证书生成tomcat可用的jks文件

    ##导出.p12格式的证书
    openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out xx_letsencrypt.p12 -name tomcat_letsencrypt
    
    ##输入以上命令后会提示输入密码和确认密码,记住此密码,后续使用
    
    ##再将证书由.p12格式转换成.jks格式
    keytool -importkeystore -srckeystore xx_letsencrypt.p12 -srcstoretype pkcs12 -destkeystore xx_letsencrypt.jks
    
    ##输入以上命令后会提示要输入目标文件密码和确认密码,还要输入源文件的密码(生成.p12文件设置的密码)

    到此jks生成完成,在tomcat server.xml配置即可。上面步骤至少输入5次密码,所有密码都弄成一样就行了,以免出错。

  8. 证书续期
    证书的有效期只有90天,在快到期时要进行续期操作

    //更新所有域名
    ./letsencrypt-auto renew --force-renew --webroot
    
    //更新指定域名
    ./letsencrypt-auto certonly --force-renew --webroot -d www.xx.com

    renew只有在快到期时才能续期,加上--force-renew表示强制续期,--webroot表示web根目录验证,会提示输入web根目录的路径。
    执行上面的命令后会生成新的证书文件,然后根据步骤7生成tomcat用的jks文件

    续期操作可以写成定期任务执行,以免人工操作。具体脚本后续补充。