0%

4. 安装证书

前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.

默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件。 不要直接让 nginx/apache 的配置文件使用这下面的文件,这里面的文件都是内部使用, 而且目录结构可能会变化。

正确的使用方法是使用--install-cert命令,并指定目标位置, 然后证书文件会被copy到相应的位置。

4.1 Apache example

1
2
3
4
5
acme.sh --install-cert -d example.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd "service apache2 force-reload"

4.2 Nginx example

1
2
3
4
acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "service nginx force-reload"
阅读全文 »

1. 简介

acme.sh实现了acme协议, 可以从letsencrypt等支持SSL验证的服务生成免费的证书。acme.sh的官方位置是Github上acme.sh

2. 安装

普通用户和root用户都可以运行acme.sh脚本进行安装

1
curl https://get.acme.sh | sh -s email=my@example.com

acme.sh安装实现了

  • 把 acme.sh 安装到你的 home 目录下: ~/.acme.sh/;并创建 一个 shellalias, 例如 .bashrc,方便你的使用: alias acme.sh=~/.acme.sh/acme.sh

  • 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书。

3. 生成证书

acme.sh 实现了 acme 协议支持的所有验证协议。 一般有两种方式验证: http验证 和 dns验证。

阅读全文 »

摘录自ssssyoki这一次,彻底弄懂 JavaScript 执行机制

这一次,彻底弄懂 JavaScript 执行机制

本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我。

不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出内容和顺序。因为javascript是一门单线程语言,所以我们可以得出结论:

  • javascript是按照语句出现的顺序执行的

看到这里读者要打人了:我难道不知道js是一行一行执行的?还用你说?稍安勿躁,正因为js是一行一行执行的,所以我们以为js都是这样的:

1
2
3
4
5
let a = '1';
console.log(a);

let b = '2';
console.log(b);
阅读全文 »

摘录:shuyangfirewalld命令集–firewall-cmd

firewalld命令集–firewall-cmd

firewalld是Linux上新用的防火墙软件,跟iptables差不多的工具
firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。

firewalld跟iptables比起来至少有两大好处:

  1. firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。
  2. firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。

firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结 构以及使用方法不一样罢了。

阅读全文 »

什么是异步

不仅仅是node,其实web容器也一样;这里的异步是针对I/O和事件来说的,是对于javascript来说的。这里不仅仅是异步,应该是异步非阻塞。

谁都喜欢赏心悦目的东西,但是一般人却未必由美术的功底。为了让自己的博客好看一些,使用现成的主题就是一个很好的选择了。Next主题到现在以及是v7.6.0了,可以看出它有稳定的团队,而且经过这么长时间的迭代,版本的bug必然会少一些。

下载Next

因为我选择把博客工程用git管理起来,为了方式git的版本嵌套问题。我没有把Next主题在工程内部clone,而是在工程外选择一个文件夹clone Next工程。

1
2
3
4
$ cd ~/
$ mkdir themes
$ cd themes
$ git clone https://github.com/theme-next/hexo-theme-next

把Next主题clone下之后,拷贝到我们的博客工程中,先在博客工程的themes目录下建立一个next目录,然后copy Next主题的文件到这个目录

阅读全文 »

前面说了,hexo从根本上来说是一个web程序框架;而hexo-cli脚手架提供各种快捷指令,方便我们开发配置我们需要开发的web程序。

安装脚手架

1
$ npm install hexo-cli -g

我们先通过npm全局安装hexo-cli这个给脚手架,然后就可以用hexo指令来执行一些快捷指令进行创建工程、生成页面、部署博客等等一些功能。现在我们就可以先生成一个blog工程。

1
2
3
$ hexo init blog
$ cd blog
$ npm install
阅读全文 »

摘录自: Node学习(1)–NPM

简介

npm有两层含义。一层含义是Node的开放式模块登记和管理系统,网址为npmjs.org。另一层含义是Node默认的模块管理器,是一个命令行下的软件,用来安装和管理Node模块。

npm不需要单独安装。在安装Node的时候,会连带一起安装npm。但是,Node附带的npm可能不是最新版本,最好用下面的命令,更新到最新版本。

1
$ npm install npm@latest -g

上面的命令中,@latest表示最新版本,-g表示全局安装。所以,命令的主干是npm install npm,也就是使用npm安装自己。之所以可以这样,是因为npm本身与Node的其他模块没有区别。

然后,运行下面的命令,查看各种信息。

1
2
3
4
5
6
7
8
9
10
11
# 查看 npm 命令列表
$ npm help

# 查看各个命令的简单用法
$ npm -l

# 查看 npm 的版本
$ npm -v

# 查看 npm 的配置
$ npm config list -l
阅读全文 »

摘录 package.json 的 dependencies 里有趣现象

  1. 带@加前缀的
    如:"@babel/preset-env": "^7.3.4"
    这种用法主要想将多个 package 分组归类,但不能直接xxx/yyy,前面必须添加@
    注意:这带前缀的包,在发布时要带 publish 参数, npm publish --access publish

  2. 带^号
    如:"moment": "^2.24.0"
    就上面这个而言,^号表示 >=2.24.0 < 3.0.0

  3. 纯版本号
    如:"react": "16.4.1"
    一般固定版本号,是担心安装了比当前版本高的版本,从而引起不兼容。不过现在都有了 arn.lock 或 package-lock.json 来锁版本,就没这类问题了。

    阅读全文 »

用了2天时间配置了这个博客,现在看来基本上是可以用了。怎么用这个博客还是需要有一个规划的;而第一篇正式的博客就是这个规划了。

为什么要建这个博客

以前是用svn管理自己的工程以及文档。在适应以git作为配置管理工具以来,我已经渐渐把自己的配置管理工具完全转移到了git上了。不同于svn的集中管理,git的分布式管理就注定了每一个项目就是一个单独的配置库,这样一些文档、笔记、总结散落的到处都是。所以就决定单独建立一个专门存储相关文档的库。但是如何将文档组织起来一直没有拿定主意,如果用专门的笔记软件就不能充分利用git的功能,而只是文字档又过于零落。最后还是决定用静态博客的形式来组织总结的一些文档。

阅读全文 »