鸽了四个月之后我终于想起来配置HTTPS环境了
好的现在不止四个月了,一直以来都懒得写,这不是最近终于有时间了,所以补上。
第一步先把https证书扔上去
#
server {
listen 80;
server_name wordpress.endercaster.com;
rewrite ^(.*) https://$host$1 permanent;# 强制跳转
# 这下面其实已经没有执行了
location / {
proxy_pass http://127.0.0.1:docker 暴露的端口;
proxy_redirect off;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 443;# ssl默认端口
server_name wordpress.endercaster.com;
ssl on;# 开启ssl
ssl_certificate cert/wordpress.pem;# nginx下的cert目录
ssl_certificate_key cert/wordpress.key; # nginx下的cert目录
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_protocols TLSv1.2;# 有个站长工具可以测ssl配置,设置成1.2是支付级安全
location / {
proxy_pass http://127.0.0.1:docker 暴露的端口;#下文会提到,因为这里用的是http
proxy_redirect off;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
由于我的站是用nginx反向代理+docker 实现的,所以访问后台的时候实际上用的还是http,又由于我在nginx里配置的所有http请求全部跳转到https ,因此需要加上下面的配置才不会出错
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
// 这下面是加的
$_SERVER['HTTPS']='ON';// 强行开启https
define('FORCE_SSL_LOGIN',true);
define('FORCE_SSL_ADMIN',true);
define('CONCATENATE_SCRIPTS',false);
// 这上面是加的
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
然后是替换站点url和固定连接,这一步需要操作数据库,执行下面的sql把固定连接和文章内容中的http://wordpress.endercaster.com/换成https://wordpress.endercaster.com/
-- 替换内容
update wp_posts set post_content=replace(post_content,'http://wordpress.endercaster.com/','https://wordpress.endercaster.com/');
-- 替换固定连接
update wp_posts set guid=replace(guid,'http://wordpress.endercaster.com/','https://wordpress.endercaster.com/');
-- 更新站点URL
update wp_options set option_value=replace(option_value,'http://wordpress.endercaster.com','https://wordpress.endercaster.com');
我记得当时配置的时候挺麻烦的,这看上去好像也没那么麻烦