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文件的密码。至此大功告成