关于设计,生活和电子的二三事

网站申请LE证书&开启HTTPS

Chrome把http网站标记为不安全已经半年了,但在去年年末时候letsencrypt项目还没有一个正式的证书签发工具。前段时间看到letsencrypt已经比较成熟了,于是也申请了个证书,把自己的服务器升级成https了。过程记录如下。以下操作在Ubuntu 14.04 LTS,apache2上测试通过。
开始我用的是certbot,letsencrypt推荐的证书签发工具。服务器软件是apache,但是按照操作说明执行完后却不能自动修改apache设置,提示
Unable to install the certificate
但是证书却申请到了。另外对于单纯申请证书来说,certbot的体积和其他同类软件相比也算很大了,安装过程中又装上去了几个其他的软件,不符合我对软件的期望,就是保证功能的同时软件本身尽可能小,不对系统造成其他影响。在letsencrypt网站找了一圈,找到个acme.sh(https://github.com/Neilpang/acme.sh),纯shell脚本,该有的功能都有了。就是它了。首先从github上下载并安装,其实就是把自身复制到/home/(username)下的一个文件夹下,以后所有的操作都限于这个文件夹内,不会对系统其他部分造成影响(除了crontab)。
wget -O – https://get.acme.sh | sh
然后签发域名证书
sudo .acme.sh/acme.sh –issue -d lifewieller.com -d www.lifewieller.com -d ipv6.lifewieller.com -w /var/www
因为验证域名时要往/var/www里面写入临时文件,所以需要sudo权限。每个-d选项后面跟一个要签发证书的域名,-w选项后面加网站根目录。–apache选项我试过,在我的主机上不能自动安装证书,和certbot一样。不过可以试试,在上面命令中加上–apache即可。
操作执行很快,执行完后会显示证书存放目录
[Mon Jun 26 23:07:57 EDT 2017] Your cert is in /home//.acme.sh/lifewieller.com/lifewieller.com.cer
[Mon Jun 26 23:07:57 EDT 2017] Your cert key is in /home//.acme.sh/lifewieller.com/lifewieller.com.key
[Mon Jun 26 23:07:57 EDT 2017] The intermediate CA cert is in /home//.acme.sh/lifewieller.com/ca.cer
[Mon Jun 26 23:07:57 EDT 2017] And the full chain certs is there: /home//.acme.sh/lifewieller.com/fullchain.cer
如果–apache选项能正常工作的话等待操作执行完应该就可以了,在我的主机上–apache选项不能正常工作,所以我需要手动配置apache服务器,并不难。
在/etc/apache2/apache2.conf文件里增加下面内容(如果之前没有配置过SSL的话,如果配置过,根据情况修改):
DocumentRoot /var/www/ ServerName www.your-domain.com SSLEngine on SSLCertificateFile /path/to/your-domain-name.crt SSLCertificateKeyFile /path/to/your-private.key SSLCertificateChainFile /path/to/DigiCertCA.crt
保存退出。然后运行
apachectl configtest
测试配置文件是否正确。有可能会遇到
Invalid command ‘SSLEngine’Error’
错误,这是apache的SSLEngine模块没有加载。执行:
sudo a2enmod ssl
加载apache SSLEngine模块,然后再测试配置文件应该就正常了。然后可以重启apache让配置文件生效
sudo service apache2 restart
现在可以试试用https访问网站了。如果上面命令不行,可以试试
sudo service apache2 force-reload
现在应该可以正常通过https访问网站了。

发表评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据