Let’sEncrypt免费SSL证书已经受到了包括FireFox、Chrome在内的众多主流浏览器的兼容和支持,目前国内的应用主要是提现在各大电商网站和门户网站上,可以提高访问和交易安全性。很多外贸公司网站也使用是因为google已经明确表示有提供SSL证书将会是一个加分因素。那么对于我们广大站长来说,也许将来某一天你的网站就需要添加这么一个SSL证书。
给网站添加SSL证书的方式有很多,老魏以后会分别写教程。今天魏艾斯博客(www.vpsss.net)说一下Let’sEncrypt官方推荐Certbot工具快速部署SSL证书。
安装环境:CentOS6?军哥lnmp1.3
一、安装Let’sEncrypt之前要准备的
把CentOS系统安装好,lnmp环境配置好并添加域名和虚拟主机完毕。
以下两个步骤根据你自己的系统情况操作,根据老魏实测的结果如果是CentOS6/7务必提前安装epel源,否则后面生成证书时可能会报错。
CentOS5升级python版本,点我查看python版本从2.4升级到2.7的操作流程。
CentOS6/7安装epel,点我查看centos安装epel源的操作流程。
根据你的实际情况来针对性的选择系统和发行版本,然后会跳转到automated安装向导。
三、CentOS6中使用Certbot部署SSL证书
1、老魏选择了CentOS6系统和lnmp环境,输入以下命令开始自动安装:
wgethttps://dl.eff.org/certbot-auto
https://www.vpsss.net/certbot-auto
“InstallingPythonpackages”这个过程需要稍等几分钟,中间有遇到IsthisOK时候输入y,回车即可。
这里下载python源默认是在国外了,如果你用国外VPS自然是没问题,而老魏测试VPS是国内的需要耐心等待一下,如果你使用国内VPS卡在InstallingPythonpackages…这个地方长时间不动,可以执行下面命令来修改pip源为国内的:
cat>~/.pip/pip.conf<<EOF
index-url=https://pypi.doubanio.com/simple/
trusted-host=pypi.doubanio.com
执行完,再重新运行certbot的命令应该正常安装python的包了。
admin@域名代表你域名对应的邮箱,尽量填写国外邮箱,国内的不知道好不好用。
https://www.vpsss.net/certbot-autocertonly–emailadmin@域名.com–agree-tos–webroot-w/home/wwwroot/网站文件夹-dwww.域名.com
B–多域名单目录生成单证书:(即一个网站多个域名使用同一个证书)
https://www.vpsss.net/certbot-autocertonly–emailadmin@域名.com–agree-tos–webroot-w/home/wwwroot/www.域名.com-dwww.域名.com-d?www.域名.com
C–?多域名多目录生成多个证书:(即一次生成多个域名的多个证书)
https://www.vpsss.net/certbot-autocertonly–emailadmin@域名.com–agree-tos–webroot-w/home/wwwroot/网站文件夹1?-d域名1.com-dwww.域名1.com-w/home/wwwroot/域名2-d域名2.com-dwww.域名2.com
现在会弹出窗口,大概意思是把你的邮箱提交给一个Let’sEncrypt的合作伙伴,老魏这里选择的n,你随意吧。
下面是这里可能遇到的两个错误(老魏全碰上了)和解决办法:
如果出现了下面红字的错误是因为没有提前安装EPEL源。
如果出现提示:访问https://域名/.well-known/acme-challenge/****这个链接返回403错误(截图不完整了),所以必须要将对应虚拟主机配置文件里的
这段配置删掉或注释掉或在这段配置前面加上
2、生成的证书被放到/etc/letsencrypt/live/你的域名/目录中,这个是根据自己网址目录来的。进入里面可以看到有cert.pem、chain.pem、fullchain.pem?、privkey.pem四个文件。
3、知道证书的安装路径之后,就涉及到在网站Nginx配置文件或者APACHE文件中添加路径了。
Nginx的虚拟主机配置文件在:/usr/local/nginx/conf/vhost/域名.conf
命令:vi?/usr/local/nginx/conf/vhost/域名.conf
输入a进入编辑状态,然后把下面已经配置好的代码(老魏实测没问题)复制粘贴到你那里,注意把下面所有的域名.com换成你的域名,证书路径也换成你自己的。结果就是主域名和www域名都自动301跳转到https://www域名,你可以根据自己的情况调整最后跳转到https://主域名还是www域名。
server_namewww.域名.com域名.com;
return301https://$server_name$request_uri;
ssl_certificate/etc/letsencrypt/live/www.域名.com/fullchain.pem;
ssl_certificate_key/etc/letsencrypt/live/www.域名.com/privkey.pem;
ssl_ciphers"EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_protocolsTLSv1TLSv1.1TLSv1.2;
ssl_prefer_server_cipherson;
ssl_session_cacheshared:SSL:10m;
#HSTS(ngx_https_headers_moduleisrequired)(15768000seconds=6months)
add_headerStrict-Transport-Securitymax-age=15768000;
#fetchOCSPrecordsfromURLinssl_certificateandcachethem
indexindex.htmlindex.htmindex.phpdefault.htmldefault.htmdefault.php;
server_namewww.域名.com域名.com;
root/home/wwwroot/www.域名.com;
#error_page404/404.html;
location~.*\.(gif|jpg|jpeg|png|bmp|swf)$
location/wp-content/uploads/{
然后按ESC退出编辑状态,输入:wq保存。
4、重启nginx使以上操作生效,命令如下:
/etc/init.d/nginxreload
5、用浏览器打开主域名或者带www的域名,都会自动301跳转到如下图的结果,也就是域名前面出现了小绿锁,点击绿锁会出现Let’sEncrypt验证的证书信息,说明添加成功了。
提示:1、截图网页中显示的it’sok是老魏自己建了一个index.html扔进虚拟主机目录里的,如果是新建网站没有任何内容,就会显示“403Forbidden”,不过不影响主域名和www域名自动301重定向到https域名。
2、这里仅限于新装wordpress博客的情况,至于已经在运行的wordpress博客,限于本文篇幅过长,老魏留着后面再补充。
6、这个网站https://www.ssllabs.com/ssltest/可以测试SSL证书是否正常工作,我这个测试结果是A+,很完美的结果!
目前Let’sEncrypt免费SSL证书默认是90天有效期,可以提前用下面命令手动续约90天:
https://www.vpsss.net/certbot-autorenew–dry-run
怕忘记续约过期了可以用crontab定时执行命令到期自动续约,这样就可以放心了。
为了写这篇文章,老魏实测了3天才搞定整个流程。开始我用的国内VPS在测试,每次总是卡在InstallingPython这里,因为默认的Python源是国外的,下载速度实在太慢了。后来又换了国外VPS又出现各种错误提示,最后又回到了国内VPS。而网上的教程很多都是复制粘贴的,并没有经过自己的实际测试,很容易误导你。总之从安装过程来看这个Cerbot工具并不像官方说的那么快捷,一个不小心就会报错,大家安装的时候务必按照老魏上面的流程去做,我这里是没问题的。
本文来源:阿里云--let’sencrypt证书(ssl安全证书申请)
本文地址:https://www.idcbaba.com/aliyun/1016.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。
标签: