在Ubuntu上获取Let’s Encrypt免费证书 [2017-02-20 UPDATED]

2017年02月20日更新:第4节

Let’s Encrypt是电子前哨基金会(EFF)发布的免费SSL证书服务,受到微软、谷歌等大佬的支持,但是配置比较复杂(主要是证书有效事件较短,需要重新签发,虽然签发的过程都是在自己的机器上通过命令行实现),之前研究过一下,最终还是放弃了。

但最最近由消息称沃通的CA将有可能被Mozilla拒绝,所以还是重新弄起来吧。下面说一下步骤。

安装Certbot

Certbot是EFF开发的一个简单的工具,比起我之前研究的时候弄的ACME要简单得多,访问https://certbot.eff.org/ 之后,选择你的服务器(webserver)和操作系统(Operating System),就会给出简单的步骤了,我们还是一步一步来吧。

我的服务器是Nginx,操作系统是Ubuntu 16.04。由于自带了软件包,安装只需要一行命令即可:

sudo apt-get install letsencrypt

如果是其他版本的Ubuntu,只需要下载一个脚本就行了(下面的命令在需要下载到的目录里执行):

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto

阅读剩余部分 -

Nginx把网站反代到二级目录

军哥lnmp,自建一个conf,把www.bbb.com反代到www.aaa.com/bbb/

server {
listen 80;
server_name www.aaa.com;

location ^~ /bbb {

#配合subs_filter替换字段。
#subs_filter_types text/css text/xml;
#subs_filter ‘”/?’ ‘”/bbb/?’ gi;
#subs_filter ‘”/Skin/’ ‘”/bbb/Skin/’ gi;
#subs_filter ‘/css/’ ‘/bbb/css/’ gi;
#subs_filter ‘”/images/’ ‘”/bbb/images/’ gi;
#subs_filter ‘”/Up/’ ‘”/bbb/Up/’ gi;

#替换模块,下文详解。

proxy_cache_key “$scheme://$host$request_uri”;
#缓存key规则,用于自动清除缓存。

proxy_cache cache_one;
#缓存区名称,必须与前面定义的相同

proxy_cache_valid 200 304 3h;
proxy_cache_valid 301 3d;
proxy_cache_valid any 10s;
#200 304状态缓存3小时
#301状态缓存3天
#其他状态缓存(如502 404)10秒

阅读剩余部分 -

factory固件和sysupdate固件区别

OpenWrt编译出来的固件会有2种,factory固件和sysupdate固件,例如:

openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin

一般说法:

  • 正常使用的是sysupdate固件,factory固件只用于从原厂固件升级到OpenWrt。
  • factory固件多了原厂验证信息。
  • factory固件比sysupdate固件多包含了原厂分区。

参考资料:

未完待续:
目前实际操作使用的都是sysupdate固件,factory固件和sysupdate固件的本质区别等以后深入代码分析后再进行补充。。。

阅读剩余部分 -

Openwrt factory固件/为何先刷factory

为啥

新的刷factory就没错 factory是把firmware区全部写一遍 sysgrade是写固件区

openwrt编译固件一般会出来两个固件:openwrt-XXXXXXX-factory.bin和openwrt-XXXXXXX-sysupgrade.bin.

按照官方的原译是: factory是用来从原厂固件升级到openwrt用的。 sysupgrade是用来给openwrt升级用的。

有趣

某些特殊的时候,factory固件占用3.9mb空间

阅读剩余部分 -

openwrt的sysupgrade和factory固件的区别

openwrt的固件一般分两种类型:factory原厂固件、sysupgrade固件

factory多了一些验证的东西,用于在原厂固件的基础上进行升级。

普通家用路由一般不是openwrt固件,如果要将家用路由升级为openwrt固件,就可以用factory刷到路由上。sysupgrade是在openwrt路由基础上升级固件,无论你是原厂固件或者本身就是openwrt固件,要升级到openwrt,factory都适用,但是sysupgrade只能用在升级,TTL救砖的时候就不能用sysupgrade。sysupgrade不包含数据分区,factory带,factory预留原厂分区,sysupgrade只包含openwrt分区。

阅读剩余部分 -

使用CloudFlare开启HTTP严格传输安全(HSTS)

HTTP Strict Transport Security (通常简称为HSTS, RFC 6797) 是一项网络安全技术,旨在帮助安全的HTTPS的Web服务器免受降级攻击。虽然HSTS能有效抵御网络攻击,但由于部署它相对困难导致这项技术尚未被广泛采用。CloudFlare的目的是改变这一点。

降级攻击(也称为SSL剥离攻击)是Web应用程序的严重威胁。这种类型的攻击是借助中间人发动攻击,攻击者可以将网页浏览器从一个正确配置的HTTPS Web服务器重定向到受Web攻击者控制的Web服务器。一旦攻击者成功地重定向用户,用户的个人隐私数据,包括Cookies,都可能会受到侵害。因为纯粹的SSL加密办法无法抵御这种攻击,所以才催生了HSTS技术。

SSL剥离攻击: 绕过SSL的保护然后发动攻击。

HSTS工作原理: 强制客户端使用 HTTPS 访问网站。过程如下:

  1. 用户第一次访问开启了 HSTS 功能的网站
  2. 在浏览器中留下一个包含 max-age 的HSTS缓存 Strict-Transport-Security
  3. 用户在 max-age 保质期内再次访问网站,浏览器就会根据缓存中的HSTS设置自动跳转到HTTPS页面

CloudFlare提供的HSTS配置参数如下:

  • Enable HSTS (Strict-Transport-Security): On/Off.
  • Max Age (max-age): 即HSTS缓存的“生存时间”。一般建议设置成6个月,这样才能获得 Qualys SSL Labs 的 A+ 评级。Web浏览器会缓存和执行政策HSTS此值的持续时间。如果你将这个值设置为“0”,将会禁用HSTS功能。
  • Apply HSTS Policy to subdomains (includeSubDomains): 将HSTS网站策略应用到每个子域名。

阅读剩余部分 -

生产线上的nginx如何添加未编译安装模块

正在生产线上跑着web前端是nginx+tomcat,现在有这样一个需求,需要对网站的单品页面和列表页设置缓存,不同的页面设置不同的缓存,但是由于开始没有安装ngx_cache_purge这个模块,现在没法直接往配置文件里边写,这时候,就需要在线安装ngx_cache_purge此模块,下边就说下怎么在线编译安装新模块。

安装步骤:

1.首先看下内核和系统的版本号。

1

2

3

4

5

6

7

8
[root@vmware1 ~]# uname -a
Linux vmware1 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
[root@vmware1 ~]# lsb_release -a
LSB Version:    :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 5.8 (Final)
Release:        5.8
Codename:       Final

阅读剩余部分 -

CentOS查看内核版本,位数,版本号

1)[root@localhost ~]# cat /proc/version

Linux version 2.6.18-194.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:14 EDT 2010

2)

[root@localhost ~]# uname -a

linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

3)

[root@localhost ~]# uname -r

2.6.18-194.el5

2. 查看linux版本:

1) 列出所有版本信息,

[root@localhost ~]# lsb_release -a

LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch

Distributor ID: CentOS

Description:    CentOS release 5.5 (Final)

Release:        5.5

Codename:       Final

注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。

2) 执行cat /etc/issue,例如如下:

[root@localhost ~]# cat /etc/issue

CentOS release 5.5 (Final)

Kernel r on an m

3) 执行cat /etc/redhat-release ,例如如下:

[root@localhost ~]# cat /etc/redhat-release

CentOS release 5.5 (Final)

查看系统是64位还是32位:

阅读剩余部分 -

meiyoutongji