用户在支持国密的  Nginx  中配置  `Strict-Transport-Security`  (HSTS)头部,与在普通  Nginx  中的操作没有区别。其核心是在正确配置国密  HTTPS  站点的基础上,于该站点的`server`配置块中,使用`add_header`指令添加  HSTS  头部。

一、配置  HSTS  参数

`add_header`  指令的标准格式如下:

nginx

add_header  Strict-Transport-Security  "max-age=63072000;  includeSubDomains;  preload"  always;

`max-age=<seconds>`:强制浏览器访问必须使用HTTPS的时长。官网推荐`63072000`秒(即2年)。

`includeSubDomains`(可选):表示该规则对所有子域名也生效。

`preload`(可选):允许将域名加入浏览器的内置STS列表,确保即使是第一次访问也使用HTTPS。提交前,请在  [hstspreload.org](https://hstspreload.org)  完成严格的测试。

`always`:确保服务器在返回错误页面(如4xx,  5xx)时,也会发送该头部。

二、在国密  Nginx  中应用

1.    编辑配置文件

        找到已配置好的国密  HTTPS  `server`  块,将  HSTS  指令添加进去:

        nginx

        server  {

                listen  443  ssl;

                server_name  www.yourdomain.com;


                #  ...  国密  SSL  配置部分(证书、协议、加密套件等)...


                #  添加  HSTS  头部配置

                add_header  Strict-Transport-Security  "max-age=63072000;  includeSubDomains;  preload"  always;

        }

2.    检查与重载配置

        修改完成后,务必执行以下命令确保配置更新生效:

        bash

        #  检查配置文件语法是否正确

        sudo  nginx  -t

        #  如果检查无误,则重载Nginx服务

        sudo  systemctl  reload  nginx

三、验证方式

配置生效后,可通过以下步骤验证:

      浏览器开发者工具:访问网站,打开“网络”(Network)标签。在响应头中应能找到  `Strict-Transport-Security`  头部,其值与配置内容一致。

      Curl命令行测试:执行  `curl  -I  https://你的域名`,检查返回信息中是否包含  HSTS  头字段。

四、注意事项

      HTTPS  是前提:HSTS  必须建立在功能完整的  HTTPS  站点之上。在启用  HSTS  策略前,请务必确保国密  HTTPS  访问一切正常。

      谨慎启用  `preload`:`preload`  会将域名写入浏览器内置列表,策略回退非常困难。请在测试充分后再提交至  [hstspreload.org](https://hstspreload.org)。