在上一期《如何为magento系统自建站安装SSL安全证书 开启HTTPS访问》已经介绍了通过sslforfree.com网站获得来自Let’s encrypt的免费SSL安全证书。有些朋友通过邮件向我反馈,按照教程已经成功申请到了SSl安全证书,但在部署到站点时却无从下手,namecheap.com上的那篇英文安装教程似乎并不适用。在读者建议下,我试着按照这篇教程去尝试安装,确实发现一些问题,有些细节,我给忽略了。

有一点需要注意,Let’s encrypt的免费SSL安全证书有效期只有90天,也就是说每隔90天,你需要手动去更新一次,毕竟是免费的,我们不能要求太多。但作为商业网站,到期时,出现断开链接或者安全证书失效时,不仅影响客户体验,而且对网站的SEO优化搜索权重上或多或少会有所影响。所以,今天晨飞给大家介绍一种新方法,帮大家顺利完成安装ssl证书,并且可以实现永久自动续签证书。实现过程涉及到比较多的网络技术知识,全程通过SSH代码命令方式执行,看似比较复杂,别担心,只要按照我的步骤走,可以顺利完成。

我们还是以部署在google云平台上的magento站点为例,进行演示。当然,如果你购买的godaddy、bluehost、搬瓦工vps等服务器主机,只要能获得SSH管理权限,这种方式是同样适用的。

整个步骤如下:

1. 通过 SSH 连接到服务器上

2. 安装 Git

3. 安装 CertBot Client

4. 获得 Certificates

5. 安装 Certificate 自动更新

6. 配置  Certificates

7. 配置 HTTPS 指向

8. 重启  Apache 服务器

9.  magento 设置

10.完成

好的,现在就按照上面的步骤来做,首先,登录https://cloud.google.com 进入你的谷歌云平台账户,进入Computer Engine -VM实例,在右侧找到你的主机实例,

1. 通过 SSH 连接到服务器上

2. 安装 Git

通过SSH连接到你的实例后,用Sudo -i获得root管理权限,然后用apt-get命令告诉Apache去下载Git;

[cc]sudo -i

sudo apt-get install git-all[/cc]

3. 安装 CertBot Client

现在你已经安装了Git了,输入 cd /tmp 命令,进入tmp临时目录,然后用 git clone 方法获得 certbot 文件;

[cc]cd /tmp
git clone https://github.com/certbot/certbot[/cc]

4. 获得 Certificates

 

这步是获得证书。如图上1的命令表示进入 certbot这个文件夹,2是 你的网站所在的根目录,3是你的网站域名,这里分别填写2个,例如 chenfeiblog.com 和www.chenfeiblog.com

[cc]cd /tmp/certbot

./certbot-auto certonly –webroot -w /var/www/html/ -d chenfeiblog.com -d www.chenfeiblog.com [/cc]

输入上面命令后,这里就可以看到你的证书所在的目录;

5. 安装 Certificate 自动更新

参考这张图,输入下面这些命令,三行的意思是,获得root权限,进入tmp下的certbot文件夹,进行证书自动更新操作;

[cc]sudo -i

cd /tmp/certbot/

./certbot-auto renew –dry-run[/cc]

接下来,你需要用crontab -e命令,去设置一个自动更新的计划任务,

[cc]crontab -e

1[/cc]

这里输入1 ,

[cce_bash] 0 0 * * * cd && ./certbot-auto renew –quiet –no-self-upgrade
0 12 * * * cd && ./certbot-auto renew –quiet –no-self-upgrade[/cce_bash]

这2段命令的意思是告诉服务器,每天自动检测2次证书续签;

6. 配置  Certificates

[box style=”blue”]sudo -i
nano /etc/apache2/sites-available/default-ssl.conf[/box]

我们重新用ssh连接实例,先获取root权限,然后用nano方式打开default-ssl.conf 这个文件进行编辑;nano是终端下的文本编辑器命令,可以理解为电脑的记事本;

粘贴这些内容

[cce_bash] <Directory /var/www/html/>
options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>[/cce_bash] 再继续往下找,你会找到2个已经存在的SSLCertificateFile文件路径,删除这些,并用以下3个路径地址进行替换;

[cc]SSLCertificateFile /etc/letsencrypt/live/chenfeiblog.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/chenfeiblog.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/chenfeiblog.com/chain.pem[/cc]

注意了,里面的域名替换成你自己的;

然后,按ctrl+o保存更改内容,在按 ctrl+x 退出;

7.  magento 设置

登录magento系统后台,左侧菜单,STORE–Configuration–Web,右侧设置;

8. 重启  Apache 服务器

为了让上面的设置生效,还需要重启服务器,输入这些命令,

[cc]sudo a2ensite default-ssl
service apache2 reload
sudo a2enmod ssl
service apache2 reload
sudo service apache2 restart[/cc]

到这里,在终端上的设置就全部结束了,

9、测试结果

好了,全部搞定。如果你的设置都正确,这时候,在浏览器中打开网站,你会看到绿色安全小图标;并且,因为你已经设置了SSL安全证书自动续签的,所以,就即便在证书到期时,也不必再去重新申请或者手动续期。

10. 配置 HTTPS 指向(补充内容,可忽略不执行)

如果你的web服务器同时配置了多个站点,可以通过以下命令完成

用cd 进入这个/etc/apache2/sites-available/ 然后 ls 命令列出当前目录下的文件;我们看到有几个配置文件,这里我们用nano方式打开000-default.conf

[cc]sudo -i

cd /etc/apache2/sites-available/

nano /etc/apache2/sites-available/000-default.conf [/cc]

如果你的服务器存在多个站点,用这个方式,也可以对其他网站进行同样的设置。

这里的意思是告诉服务器,你的网站只启动https方式,然后 ctrl+o 保存更改, ctrl+x 退出;

[cc]ServerName www.chenfeiblog.com
Redirect / https://www.chenfeiblog.com/[/cc] [box style=”warning”]步骤10为附件内容,主要作用是强制跳转域名网址到https网址,当web服务器存在多个web站点时,可按照此步骤进行单独设置。[/box] [box style=”info”] 在线观看本篇内容视频讲解:(立即订阅-学习晨飞博客跨境电商经验分享

[/box]

Leave A Comment

  1. 头像
    匿名 2018年3月16日 at 上午9:43 - Reply

    有了这句,Redirect / https://www.chenfeiblog.com/ 就打不开网站,说是重定向次数太多,我把它注释掉了,就可以了

  2. 头像
    匿名 2018年5月23日 at 下午4:09 - Reply

    我根据上述步骤操作后怎么打不开网站了呢?

  3. 头像
    匿名 2018年11月22日 at 下午3:38 - Reply

    楼主
    我也是按照这些步骤设置成功了 没有执行最后一个步骤
    网站也是突然打不开了
    就连GCP后台的IP地址也打不开了
    请问下怎么回事?

  4. 头像
    匿名 2018年12月30日 at 下午5:41 - Reply

    第四步网站的根目录是指哪里呢,怎么能查到

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