letsencrypt是linux基金会支持的项目,致力于向全世界提供免费的可信任证书。目前这个项目已经受到大部分厂商的支持。项目地址 https://letsencrypt.org/

1、申请证书

证书申请使用官方建议的certbot软件,地址是 https://certbot.eff.org/

安装certbot

$ sudo yum install epel-release
$ sudo yum install certbot

申请证书

$ certbot certonly --email yucanlin@live.cn --webroot  -w /usr/local/apache2/htdocs  -d www.yucanlin.cn

–email 管理员的邮箱,可用来后期申诉

-d 申请证书的域名

-w 域名对应访问的文件夹,比如 www.yucanlin.cn 对应访问到的目录是 /usr/local/apache2/htdocs

这样就可以了,如果不出意外你会拿到梦寐以求的证书,证书的位置

/etc/letsencrypt/live/【域名】

建议备份整个letsencrypt目录

2、更新证书

证书有效期只有3个月,所以需要定时更新证书。更新命令如下:

[code language=”bash”]
检查能否顺利更新,但不更新
$ certbot renew –dry-run
执行证书更新操作
$ certbot renew –quiet
[/code]

2.1 在apache启用https通道

首先apache在安装的时候要启用ssl模块

"./configure" 
"--enable-so" 
"--with-mpm=prefork" 
"--prefix=/usr/local/apache2" 
"--enable-ssl" 

接下来是启用ssl模块, 打开apache配置文件 /usr/local/apache2/conf/httpd.conf 去掉ssl模块前面的“#”号
LoadModule ssl_module modules/mod_ssl.so

在特定的配置文件中启用ssl

    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/www.yucanlin.cn/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.yucanlin.cn/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/www.yucanlin.cn/fullchain.pem

完整示例,这是一个反向代理的实例,apache后面跟着一群tomcat服务器

    ServerAdmin yucanlin@live.cn
    ServerName yikangbaoapi.515cn.com
    ProxyRequests Off
    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/www.yucanlin.cn/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.yucanlin.cn/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/www.yucanlin.cn/fullchain.pem
    
        BalancerMember http://192.168.1.2:8080
        BalancerMember http://192.168.1.2:9500 status=+H
    
    
        SetHandler balancer-manager
        Proxypass !
        Order Allow,Deny
        Allow from all
    
    ProxyPass / balancer://cluster/
    ProxyPassReverse / balancer://cluster/

2.2 在tomcat启用加密通道

其实我们一般不会这么做,我们会在tomcat前面放上apache或者neginx。如果要在tomcat上使用letsencrypt的证书也是可以的。

首先进入证书的目录,我们可以看到里面有四个文件

cert.pem  chain.pem  fullchain.pem  privkey.pem

首先要生成pkcs12的证书

sudo openssl pkcs12 -export -in cert.pem -inkey privkey.pem -out [pkcs_filename].p12 -name [name]

这过程中会要求输入证书的密码,请务必输入并牢记

然后是生成供tomcat使用的keystore

sudo keytool -importkeystore -destkeystore [jks_filename].jks -srckeystore [pkcs_filename].p12 -srcstoretype PKCS12 -alias [name]

这过程中会要求输入证书的密码,请务必输入并牢记

同时也会要输入刚才那本pkcs12证书的密码

干完后,你会在当前目录下得到另外两个文件,其中 *.jks 就是tomcat要用的证书文件了

cert.pem  chain.pem  fullchain.pem  keystore.jks  pkcs.p12  privkey.pem

把keystore.jks文件送到tomcat的目录 /usr/local/tomcat, 当然也可以不用这么做

配置 /usr/local/tomcat/conf/server.xml 文件


keystorePass 就是jks文件的密码。至此大功告成

By charlie

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注