在Nginx中部署国密证书,创建目录和上传文件是核心步骤。通常,你需要先在Nginx配置目录下创建一个专门存放证书的文件夹,然后将证书文件上传进去。

请注意:官方版Nginx默认不支持国密算法。在开始前,请确保你已安装或自行编译了支持国密(SM2)的Nginx版本。

以下是基于Linux和Windows系统的通用操作指南。

1.  准备工作:下载证书文件

从你的证书服务商(如DNSPod、Wotrus、阿里云等)处下载证书文件包。解压后,通常你会得到专为Nginx准备的文件夹。

国密证书通常包含签名证书和加密证书两部分。你需要找到以下四个核心文件(文件名可能略有不同):

      `your_domain_sign.crt`  (签名证书)

      `your_domain_sign.key`  (签名证书私钥)

      `your_domain_encrypt.crt`  (加密证书)

      `your_domain_encrypt.key`  (加密证书私钥)

2.  创建证书目录

在Nginx的配置目录下,新建一个文件夹用于存放证书。你可以根据习惯命名,例如  `ssl`、`cert`  或  `sm2_cert`。

      Linux系统:Nginx配置目录通常在  `/usr/local/nginx/conf`或  `/etc/nginx`。

        bash

          进入Nginx配置目录  (请根据实际路径调整)

        cd  /usr/local/nginx/conf

          创建名为  sm2_cert  的目录

        mkdir  sm2_cert

        其他常见的目录名称有  `ssl`、`cert`等。

      Windows系统:Nginx配置目录通常在  `C:\nginx-1.24.0\conf`。

        1.    打开文件资源管理器,进入Nginx安装目录下的  `conf`  文件夹。

        2.    右键点击,选择“新建”  ->  “文件夹”,命名为  `ssl`  或  `cert`。

3.  上传证书文件

将第一步准备好的四个证书文件(`.crt`和`.key`)上传到刚刚创建的目录中。

      Linux服务器:

              SCP命令:在本地终端使用  `scp`  命令。

                bash

                  将本地的证书文件上传到服务器的  /usr/local/nginx/conf/sm2_cert/  目录

                scp  /本地路径/your_domain_sign.crt  root@你的服务器IP:/usr/local/nginx/conf/sm2_cert/

                  SFTP工具:使用如  WinSCP、FileZilla  等图形化工具,通过SFTP协议连接到服务器,然后将文件从本地拖拽到远程目录。

              云服务商控制台:如果服务器在云上,也可以使用云服务商提供的文件上传功能。

      Windows服务器:

              使用  远程桌面连接,在本地和远程服务器之间直接复制粘贴文件。

              使用  WinSCP  等支持SFTP的工具进行上传。

4.  设置文件权限(仅限Linux)

为确保Nginx进程能正常读取私钥文件,建议设置合理的权限。

bash

  进入证书目录

cd  /usr/local/nginx/conf/sm2_cert

  设置私钥文件权限为仅所有者可读写  (600)

chmod  600  *.key

  设置证书文件权限为所有者可读写,其他人可读  (644)

chmod  644  *.crt

5.  配置Nginx并验证

完成上述步骤后,你需要在Nginx的配置文件(通常是  `nginx.conf`)中,将  `ssl_certificate`  和  `ssl_certificate_key`  等指令指向这些文件。配置完成后,重启Nginx并访问网站验证证书是否生效。

总结

整个过程的核心要点如下:

步骤      Linux系统      Windows系统  

创建目录          使用  `mkdir`  命令在  `/usr/local/nginx/conf/`  等路径下创建,如  `sm2_cert`。      在  `C:\nginx-1.24.0\conf\`  等路径下,通过文件管理器新建文件夹。  

上传文件          使用  `scp`  命令、WinSCP  等SFTP工具。    使用远程桌面复制粘贴,或  WinSCP  等工具。  

文件权限          务必设置,使用  `chmod  600  *.key`  命令。      通常无需额外操作。  

如果遇到问题,可以检查以下几点:

      确认Nginx是否为国密版本。

      检查  `nginx.conf`  中证书文件路径是否正确。

      确保服务器443端口已开放。