全站从http升级到https(WordPress博客)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WsXOM853BD45Fm92B0L/article/details/80115863

640?wx_fmt=jpeg

87testing.com

最近几年HTTPS取代HTTP已经成为大趋势,HTTP是超文本传输协议,信息是明文传输的,而HTTPS是安全超文本传输协议,需要证书和提供安全连接,换句话说,HTTPS是嵌套了SSL加密的HTTP连接,其内容由SSL先加密,然后再传输。

简单来讲,HTTPS是加过密的HTTP。由于网络上传输的数据是加密的,用户在浏览网页时,除了用户自己可以看到当前在看什么网页,其他第三方是无法得知用户在做什么的。比如用户在网上登录或输入其他敏感信息进行传输时一旦使用HTTPS,那么数据传输就不是明文了,对于第三方来讲就无法获取你的敏感信息。

那么既然去趋势,自己也尝试着将自己的博客由HTTP升级到HTTPS,特做下记录和总结。以防后续再用,或者给需要的人做参考。

SSL证书选择

可以选择腾讯云、阿里云合作的赛门铁克签署的证书,申请后可以免费使用一年,据说,一年后可以继续申请,再换个证书就行了,有待验证,具体可在如下页面做申请,这里也不过多描述,申请的时候都有详细的说明。640?wx_fmt=png

申请完成后,进行下载,里面有apache、nginx等对应服务的证书:640?wx_fmt=png

SSL证书的配置

可先参考:https://cloud.tencent.com/document/product/400/4143

Ubuntu下的apache2目录结构是:

 
  
  1. 默认站点在 /var/www/

  2. 配置文件在 /etc/apache2/

  3. 日志在 /var/log/apache/

  4. 启动脚本是 /etc/init.d/apache2

etc/apache2下的文件夹与文件

 
  
  1. apache2.confApache的主要配置文件,包含全局配置。

  2. envvarsApache2环境变量设置。

  3. ports.conf:配置Apache监听的端口。

  4. mods-available:这个目录包含模块和模块配置文件,不是所有的模块都有配置文件。

  5. mods-enabled:持有/etc/apache2/mods-available目录下文件的链接,当该目录下有一个模块文件和其配置文件,那么Apache重启后该模块将生效。

  6. sites-available:这个目录包含Apache虚拟主机的配置文件。虚拟主机允许Apache配置多个站点并为每个站点配置不同的参数。后面下面配置的时候会配置80端口的http重定向为443https

  7. sites-enabled:持有/etc/apache2/sites-available目录下文件的链接。当Apache重启后,该目录中包含的站点将会被激活。

  • 下面以apache为例,将对应apache目录下的文件上传到服务器某一目录文件,比如我的全部放在目录/etc/apache2/sslcert

  • 安装openssl执行:

 
  
  1. sudo apt-get install openssl

  • 开启ssl模块执行:

 
  
  1. sudo a2enmod ssl

  • 进入/etc/apache2/ports.conf查看是否监听Listen 443,没有就加上

  • 配置ssl虚拟站点,安装openssl后会在/etc/apache2/site-available目录下生成default-ssl文件,此时需要创建一个软连接到/etc/apache2/sites-enabled目录下:

 
  
  1. sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf

如下软连接就建立好了:640?wx_fmt=png

  • 修改 001-ssl.conf 配置

 
  
  1. SSLEngine on

  2. SSLCertificateFile  /etc/apache2/sslcert/2_www.87testing.com.crt

  3. SSLCertificateKeyFile  /etc/apache2/sslcert/3_www.87testing.com.key

  4. SSLCertificateChainFile  /etc/apache2/sslcert/1_root_bundle.crt

  • 配置好后重启:

 
  
  1. sudo service apache2 restart

这时候访问https://87testing.com,就可以正常打开可信任了

设置HTTP重定向为HTTPS

  • 启动重定向: sudo a2enmod rewrite #启动rewrite mod

  • 设置http端口重定向,在网站根目录wordpress下新建.htaccess文件,在文件中输入内容:

 
  
  1. RewriteEngine On

  2. RewriteCond %{SERVER_PORT} 80

  3. RewriteRule ^(.*)$ https://www.87testing.com/$1 [R=301,L]

  4. RewriteCond %{HTTP_HOST} ^87testing.com [NC]

  5. RewriteRule ^(.*)$ https://www.87testing.com/$1 [L,R=301]

将数据库写死的http修改为https

服务器上进入当前数据库:

 
  
  1. Update wp_options set option_value = https://87testing.com’ where option_id in(1,2);

  2. update wp_posts set post_content = replace(post_content, 'http://87testing.com','https://87testing.com');

最后重启下apache服务:

 
  
  1. sudo service apache2 restart

此时不管输入87testing.com就可以正常跳转到https://87testing.com,并且可信任了。。。640?wx_fmt=png

猜你喜欢

转载自blog.csdn.net/WsXOM853BD45Fm92B0L/article/details/80115863