随身笔记
随身笔记

wordpress个人博客申请Let's Encrypt免费SSL证书

本人环境是ubuntu 16.04    64位系统   apache2申请Let’s Encrypt

先检查看有没有Python 2.7版本以上(最好是2.7)直接在命令中输入:python  如果有会显示版本号。退出:exit()

此时还需要apache已经是绑定了域名并且已经是用https://sdeno.com的这样形式访问。如果还没有搭建lamp环境请参考:

ubuntu安装配置apache》这里不讲解这些。

1,git clone https://github.com/letsencrypt/letsencrypt
此命令会在目录下生成一些信息/etc/letsencrypt/

 

2,关闭apache /nginx

sudo /etc/init.d/apache2 stop

 

3,再次检查是否占用了80和443端口

netstat -ap | grep 80
netstat -ap | grep 443
如果占用了会输出内容,如果没有就不会输出内容

 

4,开始执行获取SSL证书和私钥

cd letsencrypt 
./letsencrypt-auto

执行以上代码会出现以下步骤:

ssl1

选择第2个  secure

 

 

ssl2

选OK

 

 

ssl3

看到这步已经申请成功了

 

SSL证书和私钥就在目录中/etc/letsencrypt/live/xgllseo.com,同时在目录/etc/apache2/sites-available/

也帮我们创建了一个ssl文件xgllseo-le-ssl.conf,如果没有请参考avalon123-le-ssl-conf并自己创建,还要创建一个软连接

sudo ln -s /etc/apache2/sites-available/xgllseo-le-ssl.conf /etc/apache2/sites-enabled/xgllseo-le-ssl.conf

(如果自动帮我们生成好了xxx-le-ssl.conf,也会自动帮我们创建软连接的,也会帮我们自动获取证书和私钥路径)

 

5,编辑apache2.conf

//直接在最底部加上这代码

Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3
SSLProxyProtocol all -SSLv2 -SSLv3
SSLPassPhraseDialog builtin
#SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)"
#SSLSessionCacheTimeout 300
#SSLMutex "file:/usr/local/apache/logs/ssl_mutex"



将其中的:
 AllowOverride None
 修改为:
 AllowOverride All

 

6,检查是否开启了Mod_rewrite 模块,一般情况下都是默认开启了的,不过检查下也好。

在终端中执行
 sudo a2enmod rewrite
 指令后,即启用了 Mod_rewrite 模块。
 另外,也可以通过将 /etc/apache2/mods-available/rewrite.load 连接到 /etc/apache2/mods-enabled/rewrite.load 
来打开 Mod_rewrite 模块。用指令操作就是:
 sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

 

7,重启apache

sudo /etc/init.d/apache2 restart

输入地址https://sdeno.com  看能否访问,如果可以那就成功了。

不过直接输入域名时候是会直接跳转到http的而不是https,其实我们要把80端口自动跳转到443端口,也就是要做301跳转。

 

8,编辑/etc/apache2/sites-available/xgllseo.conf,加入以下这3句话,(注意要看位置)

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://sdeno.com/$1 [L,R=301]

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 

9,重启apache

sudo /etc/init.d/apache2 restart

 

10,Let’s Encrypt免费SSL证书续期

Let’s Encrypt免费SSL证书有效期是90天,也就是每三个月你就得续期一次。采用官方的方法获取到的免费SSL证书,你不需要更改Apache和Nginx配置代码,执行以下代码即可自动替换证书为新的(注意修改域名和邮箱):

./letsencrypt-auto certonly --renew-by-default --email freehao123@gmail.com -d freehao123.org -d www.freehao123.org     
//没有邮箱就把--email freehao123@gmail.com删除

要更新之前要停止mysql、apache2 、nginx

sudo /etc/init.d/mysql stop
sudo /etc/init.d/apache2 stop
sudo /etc/init.d/nginx stop

(到目录/etc/letsencrypt/找./letsencrypt-auto在执行一次)步骤是:

1,选择要续期的域名

a1

 

2,选择第二个选择,相当于重装

a2

 

3,选择第一个

a4

 

更新完成重新开启mysql、apache2 、nginx

sudo /etc/init.d/mysql restart
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nginx restart

查看续期是否成功:

xuqi

 

 

 

如何查看过期时间

谷歌浏览器查看

ssltime1

点击“锁头”—-点击“详细信息”

 

 

ssltime2

点击“view certificate”

 

 

ssltime3

就会自动弹出证书信息。

也可以按F12—切换到“Security”选项卡—点击“View certificate”

 

 

 

————————————————————————————

注意一些细节

如果之前你网站是http://xxxx,使用了https://xxx了之后,发现能访问但是锁头并不是绿色的,或者有些页面是绿色锁头有些不是,并且在控制台还有报错,如:

baocuo

那么有可能就是你首页或者其他页面加载的时候使用了之前的http://的地址。统一修改就好了

 

批量修改图片地址:

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.xgllseo.com', 'https://sdeno.com');
//注意表前缀

对于wordpress还有3处地方要改

UPDATE wp_posts SET pinged = replace(pinged, 'http://www.xgllseo.com', 'https://sdeno.com')
UPDATE wp_posts SET guid = replace(guid, 'http://www.xgllseo.com', 'https://sdeno.com')

注:Wordpress数据库里面几个重点替换的表和字段:
表wp_posts里面的post_content (文章内容)
表wp_posts里面的pinged (ping内容)
表wp_posts里面的guid (WordPress默认链接结构)
表wp_comments里面的comment_author_url (留言作者URL地址 )

—————————————————————————————-

 多域名申请

多域名申请如果重复执行不能成功,如:

git clone https://github.com/letsencrypt/letsencrypt
//再次执行,不能成功。

这时候在/etc/letsencrypt/目录下在创建一个letsencrypt/目录,切换到/etc/letsencrypt/letsencrypt/目录下,在执行以下命令

git clone https://github.com/letsencrypt/letsencrypt

就会发现出现了2个以上的域名让你选择,选择要为申请证书的域名即可,一切按照以前步骤来即可。

 

—————————————————————————————-

解决多次重定向问题,后台无法访问问题

1,路径:网站根目录\wp-includes\functions.php找到代码 require( ABSPATH . WPINC . ‘/option.php’ );在下方添加:

add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2); function agnostic_script_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); } 
add_filter('style_loader_src', 'agnostic_style_loader_src', 20,2); function agnostic_style_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); }

 

2,路径:网站根目录\wp-config.php找到代码:** @package WordPress*/ ,在下面添加

$_SERVER['HTTPS'] = 'on';define('FORCE_SSL_LOGIN', true);define('FORCE_SSL_ADMIN', true);

 

 

没有标签
首页      网络安全      wordpress个人博客申请Let's Encrypt免费SSL证书

随身笔记

wordpress个人博客申请Let's Encrypt免费SSL证书
本人环境是ubuntu 16.04    64位系统   apache2申请Let's Encrypt 先检查看有没有Python 2.7版本以上(最好是2.7)直接在命令中输入:python  如果有会显示版本号。退出:exit() 此…
扫描二维码继续阅读
2016-09-27