Let’s Encrypt:免费 通配符(野卡)域名证书 申请方法

  • Let’s Encrypt 简介

Let’s Encrypt的通配符原本之前官方说的是2月27日上线,但是居然跳票了!不过,这两天又看到说正式出来了,就去测试了下,就为大家带来了这篇文章了。

关于介绍这里就不再叙述了,更多请看之前的文章:《Let’s Encrypt:免费 通配符域名证书将于 2018 年 2 月 27 日上线(附:旧版申请方法)》

  • 通配符SSL申请方法

本次教程主要使用之前有提到的脚本工具 Acme.sh 来申请。同样也可以使用官方的工具 cerbot 来申请,不过Acme.sh脚本要方便很多了。

注意,目前测试通配符SSL证书只能使用DNS验证

1. 首先,安装Acme工具登录你的vps服务器,执行命令:curl https://get.acme.sh | sh

或者  wget -O -  https://get.acme.sh | sh

默认当前目录,如果你root登录后直接执行以上命令,会安装在/root目录下,目录名称为:.acme.sh 默认这个目录为隐藏属性700

安装成功如图(国内服务器可能会比较慢点,懂?):

2. 开始申请,并生成TXT记录以供DNS解析验证

进入Acme.sh 目录:cd .acme.sh

执行命令,获取TXT解析记录:./acme.sh  --issue -d .youdomain.com -d youdomain.com --dns (自行替换youdomain.com为你的域名)

这里就默认就用了通配符子域名和顶级域名,即和@ ,如果你还想加一个www ,就再空格后加上-d www.youdomain.com ,既然是通配符,也就无需www了,直接参考使用上面的命令就足够了

同时,这里补充点,你如果只是申请单个域名的话或者比如旧版的支持多个不同域名的DV证书,就可以在后面加上 你想要多个-d以及你的不同域名即可

DNS获取如图:

3. 添加域名的TXT解析记录

去你的域名注册商(如果使用dnspod等第三方解析服务商,请自行去操作),按照上图添加TXT解析记录。

主机名(主机记录):_acme-challenge  记录类型:TXT  记录值:请根据上图步骤填写

注意:你添加了几个-d 就必须做几条解析记录,博主这里测试的时候是两个,所以必须添加两条TXT解析记录

博主这里测试使用的是dnspod.cn的解析服务。

4. 申请并生成SSL证书

执行命令,开始验证TXT记录,并生成SSL证书:./acme.sh  --renew -d *.youdomain.com -d youdomain.com  (自行替换youdomain.com为你的域名)

如果dns验证成功,则会自动申请SSL证书并显示输出证书内容,以及证书和私钥key文件等存放路径。

说明:1. 默认会在.acme.sh安装目录下生成一个以你的域名youdomain.com为名称的目录,包含:SSL证书文件youdomain.com.cer 、 私钥key文件youdomain.com.key 、 CA证书文件ca.cer 、完整证书链文件fullchain.cer(文件文本内容为你的ssl证书+ca证书文件内容,适用于nginx)

2. Let’s Encrypt的通配符证书和以往一样,有效期90天,你可以参考ACME.sh工具说明:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E 设置自动更新证书

证书示例:

到此,申请教程结束,本文为方便新手就不使用官方的工具 cerbot 来申请了。老手飘过,喜欢折腾的可以自己去试试cerbot申请。

最后,欢迎转载,注明出处即可。

Typecho/WordPress使用CDN后无法获取真实访问者IP(所有IP均为CDN服务器地址)的解决办法

  • 问题表现

最近,博主折腾了一下CDN,也是因为现在的服务器感觉有点慢了,就想着那另外一台服务器自建了CDN(说得挺高大上,其实就是Nginx反代) ,但是出现了一些问题:后台以及各种统计工具中,所记录的访问者IP都是同一个?就是那台CDN服务器的IP。

好吧,其实是忘记修改了,这篇文章就是做个记录,同时也为那些新手遇到同样的问题,好尽快解决。

  • 解决办法

其实nginx反代一直都有这个问题,这次折腾就忘记做修改了。解决办法很简单,只需要修改下程序加入以下代码即可。 无论是Typecho还是WordPress,都是通用的,需要修改配置文件。Typecho是config.inc.php,WordPress是wp-config.php,修改加入代码:

if (isset($_SERVER['HTTP_X_REAL_IP'])) {$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];}

如图,就是Typecho的修改方法,其他程序基本差不多的:

  • 最后啰嗦

最后再啰嗦一下

数据操作有风险,请注意提前备份。记录下来,希望能帮到别人吧。

至于,自建CDN,以后有空再写写相关的教程吧。  现在大厂也都提供了比较稳定的CDN服务了,基本网站也就够用了。如果不是喜欢折腾,就没必要了。 

MySQL关闭/定期自动清理/手动清理 binlog 日志文件

一、写在前面

   相信很多人一般都是使用各种一键安装包(如:OneinStack、宝塔、WDCP等)来搭建网站运行环境,这些一键包所安装的MySQL大多默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在数据库目录下面产生mysql-bin.000001--00000x的文件,而且一般都在几十MB到几个GB,更甚会占用整个硬盘空间,从而导致mysql无法启动或报错。

PS:博主曾经也是没有关这个,binlog日志一度涨到20G多,哈哈哈哈,嗝。

提示任何数据操作有风险,请提前做好备份,如数据异常,请自行负责。

常见web环境安装包:

Linux:

OneinStack

LNMP军哥

LNMP一键包

WDCP

宝塔Linux版

Win:

PhpStudy

UPUPW

宝塔面板Windows

本文主要以linux环境为例说明,windows环境下修改方法基本一致。

二、关闭mysql的binlog日志

1、在命令行下登录mysql服务

这里博主测试环境使用的是OneinStack,mysql的安装路径是在/usr/local/mysql,其他环境请自行查找路径并替换为你的

执行以下命令(以mysql超级用户root登录):

/usr/local/mysql/bin/mysql -u root -p

登录成功如图

2、重置清空日志

输入执行命令:reset master;

如图则表示已经清空,binlog日志文件也变成mysql-bin.000001了

3、修改mysql配置文件

文件位置:/etc/my.cnf (同理,其他环境路径请自行查找修改)

找到

log-bin=mysql-bin
binlog_format=mixed

注释这两行,在前面加上#号,最后重启mysql即可

三、手动清理binlog

登录mysql服务后,执行命令:

PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);   //删除10天前的MySQL binlog日志,可以根据需求修改时间show master logs;   //查看当前日志情况

或者使用清空命令:reset master; 清空全部日志

四、定期自动清理binlog(建议)

修改配置文件/etc/my.cnf,设置expire_logs_days,并重启mysql服务

如选择定期自动清理,则无需关闭binlog,即不用注释log-bin=mysql-binbinlog_format=mixed

# vi /etc/my.cnf  //修改expire_logs_days,这里的值表示自动删除的天数,一般设置短点,如7expire_logs_days = 7  //日志自动删除的天数。默认值为0,表示“没有自动删除”

如图

五、写在最后

   这里要说明一下,关闭Binlog有利也有弊。如数据异常还可以尝试从binlog中恢复,如不关闭又将占有大量磁盘空间。所以,还请自行选择是否关闭binlog。

   并注意养成平常定期备份数据的习惯。

 

Linux设置系统时间命令

  • 一、命令介绍

这次博主为一些linux新手带来一些常用的基本命令,用于设置linux系统时间。
命令:date、ntpdate

  • 二、date命令

date命令可以用作查看和手动设置系统时间,具体用法如下:
查看系统当前时间:date
设置时间(时间点):date -s "23:18:05"
设置时间(日期):date -s "2018-1-26"
设置完整时间(年月日、时分秒):date -s "2018-1-26 23:18:05"
设置效果如图:
20180126233813.jpg

  • 三、ntpdate命令

ntpdate命令则是用于自动同步网络时间。
命令用法:ntpdate 空格 指定的时间服务器地址
例如:ntpdate time.windows.com
即可自动向时间服务器time.windows.com同步时间。如图,出现:adjust time server 52.163.118.68 offset -0.009404 sec 则表示同步成功。
20180126234824.jpg
当然也可能出现:no server suitable for synchronization found等类似错误,这主要是由于你的vps无法连接到你指定的时间服务器地址导致的,具体原因就不详细说了。更换时间服务器即可。

  • 四、常用的NTP时间服务器

下面列举一些常用的时间服务器地址,你可以根据你的vps服务器所在位置选择相近的服务器来同步获取时间。
常用的NTP时间服务器地址:
time.windows.com 微软
pool.ntp.org
asia.pool.ntp.org
time.nist.gov
time-a.nist.gov
time-b.nist.gov
210.72.145.44 国家授时中心服务器IP地址
cn.ntp.org.cn
edu.ntp.org.cn 教育网
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
s1d.time.edu.cn 东南大学
s1e.time.edu.cn 清华大学
s2a.time.edu.cn 清华大学
s2b.time.edu.cn 清华大学

ZBench.sh:服务器一键测试脚本(自带结果导出/中/英文)

  • 简介

ZBench.sh
又一个Linux VPS测评脚本。
ZBench.sh 是一个一键检测服务器基本性能的脚本,基础代码来自 SpeedTest 和 OldKing 的 SuperSpeed。平时测试VPS的时候一直是靠着 Bench.sh 来测试。
脚本来自: 主机博客,项目地址为:https://github.com/FunctionClub/ZBench
作者把这Bench.shSuperSpeed.sh两个脚本结合在一起,然后加入 Ping 以及 路由测试 功能,并且可以生成测评报告,很方便地分享给其他朋友看自己的测评数据。

  • 脚本命令

如果中文版出现乱码等情况,请换成英文版。
中文版:
wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh && bash ZBench-CN.sh
英文版:
wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench.sh && bash ZBench.sh

  • 效果图

测试完成效果如下图:
20180118233809.jpg

  • 导出测试结果

测试完之后呢,会在 /root / 下面生成一个 report.html 的文件。
作者的例子:https://www.zhujiboke.com/zbench-example.html


Warning: in_array() expects parameter 2 to be array, null given in /www/users/HK1590886/WEB/usr/plugins/TopLamuLeimu/Plugin.php on line 85