让自己的 Wordpres 博客完美支持 HTTPS 为什么选择 HTTPS - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cloudL
V2EX    WordPress

让自己的 Wordpres 博客完美支持 HTTPS 为什么选择 HTTPS

  •  
  •   cloudL 2017-02-23 17:00:33 +08:00 2705 次点击
    这是一个创建于 3154 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先说一下什么是 HTTPS ,简单的说, HTTPS 就是加了密的 HTTP 。 HTTP 是以明文方式传送数据,不支持任何方式的数据加密,如果攻击者截取了用户和服务器之间的传输文本,就可以直接读懂里面信息,甚至还可以篡改其中内容。所以 HTTP 协议并不适合传输一些敏感信息,比如用卡号、密码等。而 HTTPS 对传输的信息进行了加密,使得信息更加安全。

    当然 HTTPS 并不仅仅用来加密网站内容,他同时可以认证网站的真实性,相信不少网友们都有不小心访问到钓鱼网站的经历,有了 HTTPS 后,浏览器就可以知道你所访问的网站是真实的还是他人伪造的,在网站打开前告诉你网站是否是安全的。

    而对于博主朋友们,选择 HTTPS 有个更重要的原因, google 和 baidu 都已经说明自己会优先展示支持 HTTPS 的网站,相信不论是谁,都希望自己的博客能排在搜索引擎的最前面吧。

    说了一堆废话,下面进入正题。

    创建 SSL 证书

    想要使用 HTTPS ,用户需要一个数字证书,来让假冒服务器无法冒充自己。关于数字证书,用户可以自己建立,也可以从网上购买,自己建立的证书适合在测试开发或个人项目使用。对于公共的网站,还是推荐去购买一个正规 SSL 服务商提供的证书( https://www.hostucan.cn/ssl )。

    这里简单介绍一下在 Linux 下用 OpenSSL 创建证书的过程:

    #用 128 位 rsa 算法生成密钥,得到 server.key 文件

    openssl genrsa 1024 > server.key

    #用上一步生成的密钥创建证书请求文件 server.csr ,这一步会提出很多问题要用户一一输入

    openssl req -new -key server.key > server.csr

    #用密钥和证书请求文件生成证书 server.crt ,-days 参数指明证书有效期,单位为天

    openssl req -x509 -days 365 -key server.key -in server.csr > server.crt

    一个创建好的证书的证书包含两部分: server.crt 和 server.key ,下面我们需要将他们添加到 Apache 设置中。

    配制 Apache 服务器

    想要在 Apache 中使用 HTTPS ,首先要开启 SSL 模块( mod_ssl ),用户可以通过 apt-get 或 yum 安装。

    安装好 ssl 模块后,修改 Apache 的设置,让原有支持 HTTP 的站点同时支持 https ,一个典型的 Apache 典型的 HTTP 配置是这样的:

    /etc/httpd/conf/httpd.conf

    <VirtualHost *:80>

    DocumentRoot /var/www/html/codlr ServerName www.codlr.com 
    </virtualhost> 在它下面添加下面内容:

    <VirtualHost *:443>

    SSLEngine on SSLCertificateFile /etc/certs/server.crt SSLCertificateKeyFile /etc/certs/server.key DocumentRoot /var/www/html/codlr ServerName www.codlr.com <Directory /var/www/html/codlr> AllowOverride All </Directory> 
    </virtualhost>

    设置好后别忘了重启服务器。

    WordPress 后台开启 HTTPS

    如果想要后台控制面板支持 HTTPS ,可以修改 WP-config.php ,在文件末尾加入以下两行代码: define('FORCE_SSL_LOGIN', true);

    define('FORCE_SSL_ADMIN', true);

    修改 URL 跳转

    首先不要忘记修改网站的地址,登录到 Wordpress 的后台:/wp-admin/options-general.php ,把 Wordpress 和 Site Address 换成 https 协议的。

    考虑到有些被转载到别的网站上的博文还是 HTTP 的,所以要修改代码,让原有的 HTTP 链接自动跳转为 HTTPS 。可以通过修改.htaccess 文件来达到这个目的,.htaccess 文件在网站的根目录下,在文件的 RewriteBase 下面添加下面两行代码:

    RewriteCond %{SERVER_PORT} !^443$

    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

    更新数据库

    仅修改配置还是不够的,有些博客的文章中可能已经包含了 http 的链接,虽然已经修改了 Url 跳转,不过还是会被浏览器认为是不完全安全的网站,可以 SQL 进行字符串替换。

    UPDATE wp_posts SET post_cOntent= replace(post_content, 'http://codlr.com','https://codlr.com');

    有的时候更换博客地址也会用到的哦。

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5515 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 09:04 PVG 17:04 LAX 02:04 JFK 05:04
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86