HTTPS是超文本传输协议,用来建立浏览器和服务器之间的通讯服务,HTTP在传输请求头报文是明文传输,这将带来很多的隐患,HTTPS因此诞生。
HTTPS在其超文本传输协议上增加了SSL安全协议,来加密请求头的报文,以达到传输数据加密的效果。
HTTPS和HTTP的区别:
支付完成后,需要签发。
填写相应信息即可,等待CA验证通过。
当验证通过后,可以下载证书,部署到服务器中。
下载申请好的证书,会得到一个key文件和pem文件。 key文件就是SSL证书的秘钥,pem文件是公钥。
通过FTP或其他方式将这两个文件上传至服务器后,修改nginx配置文件。
listen 443 ssl; # 监听443端口
if ($server_port !~ 443){ # 强制跳转至HTTPS协议
rewrite ^(/.*)$ https://$host$1 permanent;
}
ssl_certificate filepath/fullchain.pem; # 公钥文件
ssl_certificate_key filepath/privkey.key; # 密钥文件
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 指定密码为openssl支持的格式
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #密码加密方式
ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
ssl_session_cache shared:SSL:10m; # 设置存储session参数的缓存的类型和大小
ssl_session_timeout 10m; # 指定客户端可以重用session参数的时间
重载nginx配置。 使用nginx -t 检测配置 返回successful表示可用
在左边栏找到设置->常规
修改链接中的http为https 如果配置后不生效的话,找到WordPress根目录,需要修改两个文件
// 根目录/wp-includes/http.php
// 546行
$parsed_home['host'] ) === strtolower( $parsed_url['host'])
// 修改为
(strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host']) || "localhost" === strtolower( $parsed_url['host']))
// 根目录/wp-config.php增加如下代码
$_SERVER['HTTPS'] = 'on';
define("FORCE_SSL_LOGIN", true);
define("FORCE_SSL_ADMIN", true);
// 在最后的if判断前增加,否则会不生效
至此给WordPress添加HTTPS就完成了