在Nginx中部署国密证书,核心步骤包括创建专用的证书目录,并将证书文件上传到该目录。以下是根据主流云服务商和证书机构指南整理的通用流程。
第一步:证书文件说明
在操作前,请先了解需要处理的文件。国密SM2证书通常包含四个关键文件:
签名证书公钥:如 `domain.com_sign.crt`
签名证书私钥:如 `domain.com_sign.key`
加密证书公钥:如 `domain.com_encrypt.crt`
加密证书私钥:如 `domain.com_encrypt.key`
请注意:不同CA机构提供的文件名可能略有不同,但原理一致。请以您下载到的实际文件名为准。如果您的证书是`crt`格式,直接使用即可;如果是`pem`等其他格式,也可以使用,但需注意后续Nginx配置中的指令要相应调整。
第二步:创建证书目录
在Nginx服务器的配置目录下,创建一个专门用于存放证书的文件夹。
1. 找到Nginx配置目录:通常为 `/usr/local/nginx/conf`、`/etc/nginx/`或您自定义的安装路径。
2. 创建目录:使用 `mkdir` 命令。目录名可自定义,常用名有 `ssl`、`cert`或 `sm2_cert`。
示例命令:
bash
# 进入Nginx配置目录(请替换为您的实际路径)
cd /usr/local/nginx/conf
# 创建一个名为 ssl 的目录来存放证书
mkdir ssl
第三步:上传证书文件
将本地证书文件上传到刚刚创建的服务器目录中。常用的方法有:
使用WinSCP等图形化工具:通过SFTP协议,像操作本地文件夹一样,将证书文件从本地拖拽到服务器的目标目录。
使用scp命令(Linux/Mac终端):
bash
# 将本地的所有证书文件上传到服务器的 /usr/local/nginx/conf/ssl/ 目录
# 请替换 user、server_ip 和本地文件路径
scp /path/to/your/certificates/* user@your_server_ip:/usr/local/nginx/conf/ssl/
使用云服务商控制台:如果您的服务器在云上,可以直接使用云厂商提供的“文件上传”功能。
第四步:配置与验证(简要)
文件就位后,还需在Nginx配置文件中引用它们。
1. 编辑配置文件:打开 `nginx.conf` 或 `conf.d` 下的站点配置文件。
2. 配置证书路径:在 `server` 块中,使用 `ssl_certificate` 和 `ssl_certificate_key` 指令指定证书文件的完整路径。
nginx
server {
listen 443 ssl;
server_name your-domain.com;
# 配置签名证书
ssl_certificate /usr/local/nginx/conf/ssl/your-domain.com_sign.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/your-domain.com_sign.key;
# 配置加密证书
ssl_certificate /usr/local/nginx/conf/ssl/your-domain.com_encrypt.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/your-domain.com_encrypt.key;
# ... 其他SSL配置 ...
}
部分实现中,签名和加密证书的私钥可能是同一个文件,请以您证书提供商的说明为准。
3. 验证并重启:
bash
# 检查配置文件语法是否正确
nginx -t
# 如果测试通过,重载Nginx使配置生效
nginx -s reload
总的来说,流程就是 创建目录 -> 上传文件 -> 修改配置 -> 重启生效。操作时请将命令和路径替换为您的实际环境。