您想学习如何将WordPress网站从HTTP移动到HTTPS吗? 在本教程中,我们将向您展示使用Ubuntu Linux将Wordpress网站移至HTTPS所需的所有步骤。

•Ubuntu版本:18.04

硬件清单:

以下部分介绍了用于创建此Wordpress教程的设备列表。

上面列出的每一件硬件都可以在亚马逊网站上找到。

WordPress Playlist:

在此页面上,我们可以快速访问与Wordpress安装相关的视频列表。

不要忘记订阅我们命名的youtube频道 FKIT.

WordPress相关教程:

在此页面上,我们提供了与Wordpress安装相关的教程列表的快速访问。

教程 - GoDaddy帐户

首先,您需要访问 GODADDY 并创建一个帐户。

此帐户将用于创建HTTPS证书。

教程 - HTTPS证书创建

在Linux控制台上,使用以下命令安装所需的软件包。

# apt-get update
# apt-get install openssl

使用以下命令生成KEY文件和CSR文件。

# mkdir -p /downloads/certificate
# cd /downloads/certificate
# openssl req -new -newkey rsa:2048 -nodes -keyout techexpert.key -out techexpert.csr

系统将询问一些问题以满足您的证书申请。

•国家/地区名称 - 输入您所在国家/地区的双字母代码
•州或省名称 - 输入州或省的名称。
•地点名称 - 输入您的城市名称
•组织名称 - 输入您的组织名称或个人姓名。
•组织单位名称 - 可选
•通用名称 - 输入您的网站主机名
•电子邮件地址 - 可选
•质询密码 - 可选。
•可选的公司名称 - 可选。

在我们的示例中,我们正在为techexpert.tips网站创建证书请求。

Generating a 2048 bit RSA private key
...................+++
...................+++
writing new private key to 'techexpert.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Rio de Janeiro
Locality Name (eg, city) []:Rio de Janeiro
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Jonas Smith
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:techexpert.tips
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

CSR包含您的证书签名请求,并将发送给GoDaddy以创建您的公共证书。

以下是CSR文件的内容:

-----BEGIN CERTIFICATE REQUEST-----
MIICtDCCAZwCAQAwbzELMAkGA1UEBhMCQlIxFzAVBgNVBAgMDlJpbyBkZSBKYW5l
aXJvMRcwFQYDVQQHDA5SaW8gZGUgSmFuZWlybzEUMBIGA1UECgwLSm9uYXMgU21p
dGgxGDAWBgNVBAMMD3RlY2hleHBlcnQudGlwczCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBALAZgXHiRxCZgLmAl+2eNmFY1VmQgvvBIxMW0V8hjfs81tU1
4nXUei51fwdai63ypc7EG8cTyhS3Os7/3npwJU2x1j55dlVXBSGN5JFP3Afa9SHe
9XDqaLRNHLUpkkaj6EV5RLvMZvT8jBUyh+wQTesAzWz1Gg07MfpD9Ls6JcUfg6GN
s5Fy/SYEEONtSAgH48+hJ0KP3zIeNk2/JUS9T3FktBnEN8Uwmv2U0A5HQAg5oAuR
doy7XMLn4bVnbH5b3FIjgkx6CIqgeEj9e3cDeULJPzUYZzdGuaWKCFllWy2vQUrh
ei1wl7lguwGfXEi6TJStackcZHPwyYLbpKFhEssCAwEAAaAAMA0GCSqGSIb3DQEB
CwUAA4IBAQCBKsz7z95s251RaZ/x+URiIvtMFl+JheLt8PSJB8CC+SltA245kYg4
CbWc5blXckwcM+2LQ0Dd4YcWfKGunlee/Agju74gbqybV77cpA14w8wRK3tasv24
8/VD+94WvMME+WlBpuTPGIEqgAIt653Fn/E+MLD42ICRGkL+HZITAYltn+4uNtO7
S35jJ5OIVJ5WdTLWfrakCqEtPXVOpyYalwVF5MrmYzJhfeIGuLQge62uP+EFHrWI
W3+ATnPFpq0/slsxu24s00GBkj56cO2JNnmhVpSjQkmd2Jmsz42+Myh/dGTrFnd5
fQcXU9D/+qELbzFtWyVeU1SK0mufavGw
-----END CERTIFICATE REQUEST-----

KEY文件包含您的证书私钥,必须始终保存在安全的地方。

以下是KEY文件的内容:

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCwGYFx4kcQmYC5
gJftnjZhWNVZkIL7wSMTFtFfIY37PNbVNeJ11HoudX8HWout8qXOxBvHE8oUtzrO
/956cCVNsdY+eXZVVwUhjeSRT9wH2vUh3vVw6mi0TRy1KZJGo+hFeUS7zGb0/IwV
MofsEE3rAM1s9RoNOzH6Q/S7OiXFH4OhjbORcv0mBBDjbUgIB+PPoSdCj98yHjZN
vyVEvU9xZLQZxDfFMJr9lNAOR0AIOaALkXaMu1zC5+G1Z2x+W9xSI4JMegiKoHhI
/Xt3A3lCyT81GGc3RrmlighZZVstr0FK4XotcJe5YLsBn1xIukyUrWnJHGRz8MmC
26ShYRLLAgMBAAECggEAdpK19ljGQQcbBczwf67oLuQBxCzqBVomo9PZZpTRZTmx
7h46Pdyz6FR1FB6DrryTqIWjrohEqW42yuq+gvLAK3BzMd3XL99INS+1l6KOJTvp
ksTtvvoXRlAl5FX5iFcVLrJY9ZrMOGlUaXF81BamYHZJ2/OtdvtEy562Str8U52m
GTkgfpWnaLc66T05zViNwiAb5yg0v9Xb9YOEgLY8VdqYppUnJNzYs7utiDGbOjPa
OCZ5oLTl1b9l6sNw7RhhOmq/jPOur4Keg124fyleULi2Uln52waLWeI8fWI/AHmP
UQQkC3athEOKr0f1Zk9ZRxYJq5FYGPTElqQdbltEAQKBgQDiqSp4XM0tfFJwZIkH
ooEcPw+to4T0333K4mipx+YxlELCHvIXW2xIxlejyhgnVIQWX6qS0F7VUGnVuSKz
hB0zfcd89MYcqGyQSEdc9kZB+Twb9Hzd3fTXu7hKjXoz9+UKfcOXfQdILGnDqyG8
zCF//aNocRvxaO9E1cZ+1irlcQKBgQDG5OZUr8kMYI8Tl0GcmWZSFZfMYBYT3CAq
YPHmNQcHhENGz6v9jBZjkeZJBLMRZLlRWjcrWhKbEEHsjZJYiJP4u2n6n57Il9h9
OVqfK7RR3k1r9bMKzhYRnu1FsEPpMKKUrLPDChthxduXEPPZgoKGSYmhLAiYqyPg
USOyZzFt+wKBgQCmfjSgLSrZ2pSD0pWFciz8nqXZml+zr+cq/Jx8+kVw7cML7MdP
uOwVmPwPaAfN/Br6hFM7fKvsbSEQyOlgjA8XH7FFbFeJ/X2hjjY9Zvm8xGMO9cwy
/TM4tL9uo/W77r/jsPXXdRPARD98Z1xk3l1NMvaxZURtU/NN0On5iUABQQKBgGIu
FiER0R3iAF68WLAT7TVx4UgK2nsdO2eQCXkJDhpAyPEIjK8RWu/10oaS4k4guXYW
IYut3+dZpCFAVVCMwvaSlSMZbkk4464VBM3zxgRvxyoW1DXuO2ihWiD/fNZ8opTf
l7EcqR2fjOFKhgUF7qaZYG4GDYxHVuNhSkzDsdvHAoGBAIfDk7fLsG/BYROxJpzN
b1CoG8DE+DKYTWwMWW45rDF0ImbC6H3fg876CeZ3YKGWqt9qkha7gnGGVRRufP15
O7ZEXebZXeDYafXSNcnqSe7FSNtVr1eFlTWmL8OiWQuaqxjs/VogdWfhkEGPISVF
AOM3I6XSGx4NxW2RgYmvQZ4O
-----END PRIVATE KEY-----

返回GODADDY网站并购买SSL证书。

您需要在网站上粘贴CSR文件的内容。

GoDaddy Generate Certificate

10分钟后,GoDaddy将完成证书的创建,并允许您下载ZIP文件。

在我们的示例中,ZIP文件名为:techexpert.tips.zip

GoDaddy Certificate Download

将ZIP文件复制到Linux服务器。

在我们的示例中,我将假设您将ZIP文件复制到以下目录:/ downloads / certificate

# cd /downloads/certificate
# unzip techexpert.tips.zip

Archive: techexpert.tips.zip
inflating: gd_bundle-g2-g1.crt
inflating: 1c9ad5b95b2ac0fb.crt

让我们列出证书目录中可用的文件。

•1c9ad5b95b2ac0fb.crt
•gd_bundle-g2-g1.crt
•techexpert.csr
•techexpert.key
•techexpert.tips.zip

您的证书目录中应该有类似的文件。

可选的。 如果要查看Godady发送的证书文件,请使用以下命令。

# openssl x509 -in gd_bundle-g2-g1.crt -text -noout
# openssl x509 -in ab0562011b4bb0c7.crt -text -noout

不要忘记更改文件名以反映您的环境。

教程 - 在Apache上将HTTP重定向到HTTPS

启用Apache SSL模块和Apache REWRITE模块。

# a2enmod rewrite
# a2enmod ssl
# service apache2 restart

编辑Apache VIRTUALHOST配置文件以通过HTTPS提供您的网站:

# vi /etc/apache2/sites-available/techexpert.conf

请记住,您的VIRTUALHOST文件名和位置可能与我的不同。

这是我们的网站原始文件,在配置之前。

<VirtualHost *:80>
ServerAdmin nobody@care.com
DocumentRoot /websites/techexpert/www
ServerName techexpert.tips

<Directory /websites/techexpert/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /websites/techexpert/logs/error.log
CustomLog /websites/techexpert/logs/access.log combined
LogLevel error
</VirtualHost>

这是启用了HTTPS VIRTUALHOST的新文件。

此文件还配置为将任何HTTP连接重定向到HTTPS网站。

<VirtualHost *:80>
ServerAdmin nobody@care.com
ServerName techexpert.tips
Redirect permanent / https://techexpert.tips/
</virtualhost>

<VirtualHost *:443>
ServerAdmin nobody@care.com
DocumentRoot /websites/techexpert/www
ServerName techexpert.tips

<Directory /websites/techexpert/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
SSLCertificateFile /downloads/certificate/1c9ad5b95b2ac0fb.crt
SSLCertificateKeyFile /downloads/certificate/techexpert.key
SSLCertificateChainFile /downloads/certificate/gd_bundle-g2-g1.crt

ErrorLog /websites/techexpert/logs/error.log
CustomLog /websites/techexpert/logs/access.log combined
LogLevel error
</VirtualHost>

在所有证书和密钥文件上设置正确的文件权限。

# chown www-data.www-data /downloads/certificate/* -R

您还应该手动重启apache并验证服务状态。

# service apache2 stop
# service apache2 start
# service apache2 status

以下是Apache服务状态输出的示例。

● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Mon 2018-04-23 00:02:09 -03; 1min 4s ago

教程 - 将Wordpress配置为HTTPS

现在,我们需要配置Wordpress以使用HTTPS。

打开浏览器并访问Wordpress仪表板。

在Wordpress仪表板上,访问“设置”菜单并选择“常规”选项。

Wordpress Settings General

将WordPress地址(URL)和站点地址(URL)配置从HTTP更改为HTTPS。

Wordpress HTTP to HTTPS

在Wordpress仪表板上,访问“设置”菜单并选择“永久链接”选项。

Wordpress permalinks menu

单击“保存更改”按钮以更新永久链接配置。

Wordpress backup permalinks

您已完成网站配置。

打开浏览器并尝试访问您网站的HTTPS版本。

如果您尝试打开网站HTTP URL,Apache Web服务器应自动将您重定向到HTTPS版本。

确保一切正常。

教程 - WordPress站点地图

如果您的Wordpress网站提供站点地图,则需要再次生成站点地图。

通常,人们使用Yoast SEO插件动态创建Sitemap。

停用YOAST SEO插件并激活YOAST SEO插件。

这将重新创建Wordpress Sitemap。

Wordpress YOAST SITEMAP Deactivate

教程 - 更新Wordpress MySQL数据库链接

现在,我们需要编辑Wordpress数据库并将每个HTTP URL条目更改为HTTPS。

您必须先备份数据库,然后再继续。

完成Wordpress数据库备份后,我们需要下载WP-CLI软件。

# mkdir /downloads/wp-cli
# cd /downloads/wp-cli
# wget https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# php wp-cli.phar --info
# chmod +x wp-cli.phar
# cp wp-cli.phar /usr/local/bin/wp

访问Wordpress安装目录并测试WP-CLI命令。

# cd /var/www/html/wordpress
# wp --info

OS: Linux 4.15.0-1021-aws #21-Ubuntu SMP Tue Aug 28 10:23:07 UTC 2018 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php7.2
PHP version: 7.2.10-0ubuntu0.18.04.1
php.ini used: /etc/php/7.2/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /downloads/wp-cli
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.0.1

现在,让我们测试将替换数据库上HTTPS版本的HTTP链接的命令。

此命令不会在数据库中执行任何更改。

# wp search-replace 'http://techexpert.tips' 'https://techexpert.tips' --all-tables --skip-columns=guid --dry-run --allow-root

Warning: Skipping an uninitialized class "DUP_Package", replacements might not be complete.
Success: 18925 replacements to be made.

测试成功完成。

现在,让我们运行将取代数据库上HTTPS版本的HTTP链接的命令。

此命令将在数据库中执行更改。

# wp search-replace 'http://techexpert.tips' 'https://techexpert.tips' --all-tables --skip-columns=guid --dry-run --allow-root

Warning: Skipping an uninitialized class "DUP_Package", replacements might not be complete.
Success: 18925 replacements were made.

您已完成Mysql数据库配置。

可选 - Google Search Console

如果您使用的是Google Search Console,则需要使用HTTPS网址添加其他网站。

很遗憾,Google搜索控制台不提供将HTTP网站重命名为HTTPS的选项。

您需要将HTTPS版本配置为新网站。

可选 - Google Analytics

如果您使用的是Google Analytics,则需要更改网站属性以反映HTTP网址。

访问Google Analytics管理员菜单,然后选择“属性设置”选项。

将默认URL配置从HTTP更改为HTTPS。

Google Analytics - HTTP to HTTPS