如何在共享主机、云中为WordPress实现SSL?
通过在cPanel托管、云服务器、Cloudflare、EasyEngine、Cloudways上实现SSL,使您的WordPress网站能够通过HTTPS访问。
保护网站是不可选的,与内容、设计或SEO一样重要。配置SSL/TLS(安全套接字层/传输层安全)证书是securing the site的一项基本任务,因此您的网站只能通过HTTPS访问。
HTTPS(超文本传输协议安全)确保客户端(浏览器)到服务器之间的数据传输是加密的。数据可以是用户名、电子邮件、密码或信用卡等信息,如果您是running an online store。
最近,HTTPS还包括在搜索排名信号中,因此不仅适用于电子商务网站,而且适用于所有网站。好消息是,您可以免费开始使用。
让我们进入技术细节。
您可以在多个级别上卸载SSL握手。
- Web服务器
- 负载均衡器
- 网络边缘/CDN
配置您的网站能够通过HTTPS访问的先决条件是SSL/TLS证书。
Let’s Encrypt提供免费证书,还有其他一些我提到的证书,如here。如果您想购买Symantec、Thawte、GeoTrust等证书,则可以从SSL Store获取。让我们看看实施细节。以下是我使用的测试域名(techpostal.com)和一个Genesis theme。
作为最佳实践,在进行更改之前,备份一下,以防出现问题,您可以回滚。
共享托管(cPanel)
大多数顶级共享托管提供商如Site Ground、Bluehost 在所有计划下都提供免费证书。如果您的网站托管在cPanel托管上,则以下步骤将对您有所帮助。
下面的示例来自Site Ground,但适用于任何cPanel托管提供商。
- 登录Site Ground
- 转至我的账户>>转至cPanel
- 转至工具下的WordPress工具包
- 在操作下点击管理
- 点击配置SSL
- 它将打开一个弹窗,选择启用SSL并进行更改
SiteGround将为您的域名提供Let's Encrypt证书并对WordPress进行必要的修改,以便通过HTTPS访问。
您可以通过浏览器访问带有https的URL来验证。在我的情况下 – 它将是https://techpostal.com
这表示我的WordPress网站已启用SSL,这是很好的,但有一个小问题。
问题在于该网站可以通过HTTP和HTTPS访问,这不好,必须进行另一个配置更改,以确保所有请求只能通过HTTPS提供。
- 转至cPanel
- 向下滚动一点,单击Security部分下的Let's Encrypt
打开启用HTTPS强制和外部链接重写
恭喜!您已成功为托管在共享托管上的WordPress网站启用了证书。通过访问几个页面来验证它是否正常工作。
注意:一些用户报告说图像无法显示,因为它尝试通过HTTP加载。如果您遇到此问题,可以安装SSL Insecure Content Fixer plugin来解决。默认配置对我有效。
如果您的托管提供商不提供免费SSL,则可以尝试Site Ground。
云主机/VPS
就我个人而言,我更倾向于在网络边缘设备或CDN上终止SSL握手。
以下说明基于Let's Encrypt提供的在Ubuntu 16.04上使用Nginx的免费证书。然而,如果您使用Apache HTTP服务器,则请参考this for traditional cert和this for let’s encrypt。
- 使用root登录到您的Cloud/VPS server
- 安装Let's Encrypt客户端
apt-get install letsencrypt
- 为该域生成证书
letsencrypt certonly --webroot -w /var/www/html -d techpostal.com -d www.techpostal.com
注意:将--webroot
更改为您实际的DocumentRoot位置。在上面的命令中,我正在为包括www在内的域生成证书,因此如果有人尝试使用www访问,将不会出现证书错误。
- 它会提示您输入电子邮件地址
- 接受条款和条件
这将花费几秒钟的时间,并且您将获得包括证书位置在内的一些注意事项的确认。
IMPORTANT NOTES: - 如果您丢失了您的帐户凭据,您可以通过发送到[email protected]的电子邮件进行恢复。 - 恭喜!您的证书和链已保存在 /etc/letsencrypt/live/techpostal.com/fullchain.pem。您的证书将 在2017年11月10日到期。要在 将来获取证书的新版本,只需再次运行Let's Encrypt。 - 您的帐户凭据已保存在您的Let's Encrypt 配置目录中的/etc/letsencrypt。您应该制作一个 对此文件夹进行拷贝。这个配置目录也将 包含Let's Encrypt获取的证书和私钥,因此定期备份此文件夹是理想的。 - 如果您喜欢Let's Encrypt,请考虑支持我们的工作: 向ISRG / Let's Encrypt捐款:https://letsencrypt.org/donate 向EFF捐款:https://eff.org/donate-le
让我们配置Nginx以侦听端口443并提供SSL证书详细信息。
- 编辑Nginx配置文件/etc/nginx/sites-available/default,并在
server
块下的listen
指令中添加以下内容。
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/techpostal.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/techpostal.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:15m;
ssl_session_timeout 15m;
- 重新启动Nginx
service nginx restart
现在,您应该能够通过HTTPS访问托管在云上的WordPress。
在默认+以上配置中,Nginx同时侦听端口80(HTTP)和443(HTTPS),这意味着一个网站可以通过两种协议访问。为了确保所有请求都通过HTTPS提供,您可以安装Really Simple SSL plugin。
- 安装插件后,转到“设置”,然后点击“继续,激活SSL!”
- 激活后,您将收到确认信息
通过使用http://访问网站进行验证,您会注意到它将被重定向到https://。此外,您可能还想测试您的网站是否存在任何SSL/TLS vulnerabilities。
太棒了!WordPress网站在Cloud server上成功获得了SSL证书。
Cloudflare
添加SSL到网站的最简单方法之一是使用Cloudflare。 Cloudflare提供许多performance & security advantages,包括免费SSL证书。
如果您已经使用他们的服务,那么您可以快速启用它。
- 登录Cloudflare,进入Crypto选项卡
- 确保SSL设置不是关闭(选择Flexible即可)
- 向下滚动一点,选择开启“Automatic HTTPS Rewrites”
很容易,不是吗?
注意:如果您注意到混合内容问题,那么您可能需要安装Cloudflare Flexible SSL插件,就像我一样explained here.
EasyEngine
我喜欢EasyEngine。在不到10分钟的时间内,它是获取服务器或VPS的最快和最简单的方法之一。
如果您使用EasyEngine安装了WordPress,使用http://
,您可以使用以下命令升级为https://
。
- 登录EasyEngine服务器并执行以下命令
ee site update yourwordpresssite.com --letsencrypt
例:
root@techpostal:~# ee site update techpostal.com --letsencrypt Letsencrypt is currently in beta phase. Do you wish to enable SSl now for techpostal.com? Type "y" to continue [n]:y Downloading LetsEncrypt [Done] Please Wait while we fetch SSL Certificate for your site. It may take time depending upon network. Let's Encrypt successfully setup for your site Your certificate and chain have been saved at /etc/letsencrypt/live/techpostal.com/fullchain.pem Configuring Nginx SSL configuration Adding /var/www/techpostal.com/conf/nginx/ssl.conf Adding /etc/nginx/conf.d/force-ssl-techpostal.com.conf Added HTTPS Force Redirection for Site http://techpostal.com Creating Cron Job for cert auto-renewal Reload : nginx [OK] Congratulations! Successfully Configured SSl for Site https://techpostal.com Your cert will expire within 89 days. root@techpostal:~#
只需一个简单的命令,您就完成了。
Cloudways
Cloudways对于管理云托管平台来说非常棒。您可以在Google Cloud Platform,AWS,Kyup,Vultr和DigitalOcean上启动您的网站,并集中管理。
要在通过Cloudways管理的WordPress站点上启用Let’s Encrypt SSL证书,您需要执行以下操作。
- 登录Cloudways平台 >> 应用程序
- 选择WP站点 >> SSL证书
- 输入您的电子邮件和域名,然后点击“安装证书”
- 这将需要几分钟的时间,一旦完成,您将看到它已成功启用在域名上。
好处是您不必担心证书更新,因为Cloudways会自动进行自动更新。Cloudways提供了一个FREE trial,所以您可以尝试一下,看看它对您有何作用。
这就是今天关于在WordPress中正确实现SSL/TLS证书的全部内容。希望对您有所帮助。