用户在部署国密证书前,确保拥有服务器的管理权限是首要且必需的一步。几乎所有主流云服务商的官方指南,都将 “已获得本服务器的管理权限(即`root`账号或拥有`sudo`权限的账号)” 列为首要前提条件。
以下是基于此管理权限,你需要做的具体准备工作:
一、核心前提:确保拥有管理权限
你需要能通过 `root` 用户直接登录,或使用一个具有 `sudo` 权限的普通用户账号。因为后续的几乎所有操作,如安装依赖、编译软件、修改系统配置文件等,都需要最高权限。
二、环境配置与工具准备
拥有管理权限后,可以开始准备部署环境:
安装编译工具及依赖:国密证书通常需要重新编译Nginx或Apache等Web服务器,因此必须安装`gcc`、`make`等编译工具及必要的依赖库。以CentOS为例,命令为:
bash
sudo yum install -y gcc gcc-c++ make pcre-devel openssl-devel
对于Ubuntu/Debian,则使用:
bash
sudo apt install build-essential
下载并安装国密OpenSSL(如GmSSL/Tongsuo):标准的OpenSSL不支持国密算法。你需要下载国密版的OpenSSL(例如`GmSSL`或`Tongsuo`),并将其解压到指定目录,如`/usr/local/gmssl`。
bash
示例:解压GmSSL到/usr/local目录
sudo tar xzfm gmssl_openssl_b2025.xxxx_x64.tar.gz -C /usr/local
重新编译Web服务器:在编译Nginx或Apache时,需要通过编译参数指定使用刚刚安装的国密版OpenSSL。
三、证书与私钥的权限设置(安全关键)
这是保障服务器安全最关键的一步,核心原则是**最小权限,即仅授予完成任务所必需的最小访问权限。
私钥文件 (`.key`):必须严格保护。建议权限设为`600`(仅所有者可读写)或`400`(仅所有者可读),所有者为`root`。例如:
bash
sudo chown root:root /path/to/your/private.key
sudo chmod 600 /path/to/your/private.key
如果Web服务器以专用用户(如`www-data`或`nginx`)运行,可将私钥所有者改为该用户,或保持`root`所有,通过用户组权限(如`640`)授权。绝对不要将私钥权限设为`644`或更高。
证书文件 (`.crt`/`.pem`):安全性要求低于私钥。权限设为`644`(所有者读写,其他用户只读)即可,所有者通常为`root`。
bash
sudo chown root:root /path/to/your/certificate.crt
sudo chmod 644 /path/to/your/certificate.crt
存储目录:存放私钥的目录(如`/etc/ssl/private`)权限应设为`700`(仅所有者可访问);存放证书的目录(如`/etc/ssl/certs`)权限可设为`755`。
四、其他准备:网络与域名
开放端口:确保服务器防火墙和安全组策略已开放`443`端口。
域名解析:确保你的域名已正确解析到服务器IP,并完成了必要的ICP备案。
五、总结
部署国密证书前的权限准备工作,可以概括为三步:
1. 确认权限:拥有`root`或`sudo`权限。
2. 编译环境:利用管理权限安装依赖、国密OpenSSL,并重新编译Web服务器。
3. 严格设权:为证书文件,尤其是私钥,设置最严格的权限(私钥`600`,证书`644`)。