[内容] Linux SSL 证书的生成 (OpenSSL 版)

内容一:SSL 证书简介

1.1 SSL 证书包含的文件

KEY 私钥、CRT 公钥、PFX 公私钥、CSR 证书签名请求文件

1.2 SSL 证书包含的文件简介

1.2.1 KEY 私钥

KEY 私钥,放置在服务器上,属于机密文件,不能被其他人得到。可以是 PEM 或 DER 两种编码方式中的一种,这两种编码方式也可以相互转换。Linux 上通常使用 PEM,而 Windows 上通常使用 DER

1.2.2 CRT 公钥

CRT 公钥,放置在服务器上,可以被其它人得到。可以是 PEM 或 DER 两种编码方式中的一种,这两种编码方式也可以相互转换。Linux 上通常使用 PEM,而 Windows 上通常使用 DER

1.2.3 PFX 公私钥

PFX 同时包含公钥和私钥,放置在服务器上。在 Linux 上通常会分别使用 KEY 和 CRT 两个文件,而 Windows 会使用同时包含公钥和私钥的 PFX 文件

1.2.4 CSR 证书签名请求文件

CSR 全名 Certificate Signing Request,即证书签名请求文件。用于提供给证书供应商申请证书

内容二:生成 SSL 证书

2.1 生成 KEY 私钥

2.1.1 同时生成 KEY 私钥和 CSR 证书签名请求文件
2.1.1.1 交互式同时生成 KEY 私钥和 CSR 证书签名请求文件
# openssl req -nodes -newkey rsa:4096 -sha512 -keyout eternalcenter.com.key -out eternalcenter.com.csr

(补充:这里以同时生成长度 4096 位,加密格式为 512 的 KEY 私钥 eternalcenter.com.key 和 CSR 证书签名请求文件 eternalcenter.com.csr 为例)

(注意:后面还有国家、州或省、城市、组织、部门、域名和邮箱地址的信息需要输入此命令后手动填写)

2.1.1.2 非交互式同时生成 KEY 私钥和 CSR 证书签名请求文件
# openssl req -nodes -newkey rsa:4096 -sha512 -out eternalcenter.com.csr -keyout eternalcenter.com.key -subj "/C=CN/ST=Sichuan/L=Chengdu/O=Eternal Center/OU=Mingyu Zhu/CN=eternalcenter.com/emailAddress=contact@mingyuzhu.com"


补充:这里以同时生成
1) 长度为 4096 位
2) 加密格式为 512
3) 国家为 CN
4) 州或省为 Sichuan
5) 城市为 Chengdu
6) 组织为 Eternal Center
7) 部门为 Mingyu Zhu
8) 域名为 eternalcenter.com
9) 邮箱地址为 contact@mingyuzhu.com
的 KEY 私钥 eternalcenter.com.key 和 CSR 证书签名请求文件 eternalcenter.com.csr 为例

2.1.2 只生成 CSR 证书签名请求文件和 KEY 私钥
2.1.2.1 交互式只生成 CSR 证书签名请求文件和 KEY 私钥
# openssl req -nodes -newkey rsa:4096 -sha512 -keyout eternalcenter.com.key

(补充:这里以同时生成长度 4096 位,加密格式为 512 的 KEY 私钥 eternalcenter.com.key 和 CSR 证书签名请求文件 eternalcenter.com.csr 为例)

(注意:后面还有国家、州或省、城市、组织、部门、域名和邮箱地址的信息需要输入此命令后手动填写)

2.1.2.2 非交互式只生成 CSR 证书签名请求文件和 KEY 私钥
# openssl req -nodes -newkey rsa:4096 -sha512 -keyout eternalcenter.com.key -subj "/C=CN/ST=Sichuan/L=Chengdu/O=Eternal Center/OU=Mingyu Zhu/CN=eternalcenter.com/emailAddress=contact@mingyuzhu.com"


补充:这里以同时生成
1) 长度为 4096 位
2) 加密格式为 512
3) 国家为 CN
4) 州或省为 Sichuan
5) 城市为 Chengdu
6) 组织为 Eternal Center
7) 部门为 Mingyu Zhu
8) 域名为 eternalcenter.com
9) 邮箱地址为 contact@mingyuzhu.com
的 KEY 私钥 eternalcenter.com.key 和 CSR 证书签名请求文件 eternalcenter.com.csr 为例

2.2 生成 CRT 公钥

# openssl rsa -in eternalcenter.com.key -out eternalcenter.com.crt -pubout -outform PEM

(补充:这里以使用 KEY 私钥 eternalcenter.com.key 生成 CRT 公钥 eternalcenter.com.crt 为例)

内容三:查看 SSL 证书

3.1 查看 KEY 私钥

# cat eternalcenter.com.key

(补充:这里以查看 KEY 私钥 eternalcenter.com.key 为例)

3.2 查看 CRT 公钥

# cat eternalcenter.com.crt

(补充:这里以查看 CRT 公钥 eternalcenter.com.crt 为例)

3.3 查看 CSR 证书签名请求文件

# openssl req -in eternalcenter.com.csr -noout -text

(补充:这里以查看 CSR 证书签名请求文件 eternalcenter.com.csr 为例)

[实验] Apache + Pacemaker 网站服务高可用的实现

纪念:站主于 2019 年 8 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

注意:

在实现 Apache + Pacemaker 网站服务高可用之前要先安装 Pacemaker 集群

正文:

步骤一:Pacemaker 高可用网站服务的解析

1.1 集群本身需要的服务

需要额外一台服务器提供 NFS 远程目录服务

1.2 本 Pacemaker 高可用网站服务的特点

1) 使用其他服务器提供的 NFS 服务器作为网站的网页目录
2) 提供网站 服务
3) 提供虚拟 IP 地址服务
4) 以上三项服务器都实现高可用
5) 唯一的单点故障在于额外的那台服务器提供的 NFS 远程目录服务器

步骤二:前期准备

2.1 在所有集群服务器上安装 httpd

(在所有集群服务器上执行以下步骤)

# yum -y install httpd

2.2 确保 httpd 不会被 SELinux 限制

(在所有集群服务器上执行以下步骤)

# setsebool -P httpd_use_nfs 1

(补充:这里是要求 SELinux 的布尔值让 httpd 也可以使用 NFS 服务)

2.3 确保 httpd 没有启动

(在所有集群服务器上执行以下步骤)

# systemctl stop httpd
# systemctl disable httpd

步骤三:部署 Pacemaker 的网站高可用服务

3.1 在 网站资源组中创建名为 webip 的虚拟 IP 地址资源

(只在一台集群里的服务器上执行以下步骤)

# pcs resource create webip IPaddr2 ip=192.168.0.20 cidr_netmask=24 --group=web

3.2 在 网站资源组中创建名为 webnfs 挂载其他服务器的 NFS 服务的资源

(只在一台集群里的服务器上执行以下步骤)

# pcs resource create webnfs Filesystem device=192.168.8.21:/content directory=/var/www/html fstype=nfs options=ro --group web

(注意:这里的 Filesystem 指的是其他服务器搭建的 NFS 服务,这个服务需要提前搭建好,可以参考 https://eternalcenter.com/nfs/ 里的内容)

3.3 在网站资源组中创建名为 webserver 的网站资源

(只在 1 台集群里的服务器上执行以下步骤)

# pcs resource create webserver apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group web

[内容] Apache 的使用 (开启网页目录结构)

内容一:开启 Apache 目录结构的目的

默认安装了 Apache 之后,被访问的网页只会显示一张 Apache 的欢迎页面或者 404
有时候我们需要让网页现实网页根 “/” 目录中的文件和目录,用于提供 http 下载等功能,这个时候就需要开启 Apache 的目录结构

内容二:开启 Apahche 目录结构的方法

2.1 方法一:通过修改 Apache 的配置文件实现

# vim /etc/httpd/conf.d/welcome.conf

将其中的:

......
Options -Indexes 
......

修改为:

......
Options +Indexes 
......

2.2 方法二:通过在 Apache 的网页目录里添加文件实现

2.2.1 进入网页目录

# cd /var/www/html

(补充:这里以进入 Apache 的默认目录 /var/www/html 为例)

2.2.2 创建以下内容

# vim .htaccess

添加以下内容:

Options +Indexes