{% if theme.baidu_site_verification %} {% endif %}

国密Nginx服务器部署


前言

         有段时间没写博客了,现在有个这样的任务:系统原来的Https加密算法不是用的国密算法,现在要改为国密。有了之前OpenSSL生成证书和密钥的经验,我感觉不难,但今天实际操作,也踩了不少坑。

准备环境

这里要准备国密浏览器(奇安信浏览器),国密OpenSSL与国密Nginx。这些可看我的参考资料,然后找到下载地址。还有最好先找一个比较干净的centos环境,在nginx上测试,如果没问题,然后再修改系统的nginx配置。

在Nginx上编译部署

  1. 下载gmssl_openssl_1.1_bxx.tar.gz到/root/下
  2. 解压 tar xzfm gmssl_openssl_1.1_bxx.tar.gz -C /usr/local
  3. 下载nginx-1.24.0.tar.gz到/root/下
  4. 解压 tar xzfm nginx-1.24.0.tar.gz
  5. 进入目录 cd /root/nginx-1.24.0
  6. 编辑auto/lib/openssl/conf,将全部$OPENSSL/.openssl/修改为$OPENSSL/并保存
  7. 编译配置
./configure \
--without-http_gzip_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_v2_module \
--with-stream \
--with-file-aio \
--with-openssl="/usr/local/gmssl"
  1. 编译安装
    make install
  2. /usr/local/nginx即为生成的nginx目录

配置示例

与之前不同的是,在国密实验室生成证书,然后在服务器放入证书,如下示例:keystore/是文件夹,sm2.demo1.gmssl.cn.sig.crt.pem是文件名。

测试证书使用www.gmcrt.cn签发。

# https 服务配置
server
{
  listen       443 ssl;;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:AES128-SHA:DES-CBC3-SHA:ECC-SM4-CBC-SM3:ECC-SM4-GCM-SM3;
  ssl_verify_client off;
  
  ssl_certificate keystore/sm2.demo1.gmssl.cn.sig.crt.pem;
  ssl_certificate_key keystore/sm2.demo1.gmssl.cn.sig.key.pem;
  
  ssl_certificate keystore/sm2.demo1.gmssl.cn.enc.crt.pem;
  ssl_certificate_key keystore/sm2.demo1.gmssl.cn.enc.key.pem;
  
  location /
  {
    root html;
    index index.html index.htm;
  }
}

启动nginx

参考资料:

csdn文章:https://blog.csdn.net/new9232/article/details/134562784

国密SSL实验室:

CentOS7升级OpenSSL版本

1、查看linux服务器内核版本

cat /proc/version

2、查看本地OpenSSL版本

openssl version

如果不是最新的openSSL 1.1.1版本,则可以进行升级

下载最新的openssl版本

wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz

或者

外网下载openssl-1.1.1c.tar.gz安装包,然后拷贝到服务器上

3、解压并编译安装

tar -zxvf openssl-1.1.1c.tar.gz

cd openssl-1.1.1c

./config –prefix=/usr/local/openssl #如果此步骤报错,需要安装perl以及gcc包

make && make install

mv /usr/bin/openssl /usr/bin/openssl.bak

ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

echo “/usr/local/openssl/lib” >> /etc/ld.so.conf

ldconfig -v # 设置生效

4、查看本地OpenSSL版本

openssl version

如果是最新的openSSL 1.1.1版本,则说明升级成功
原文链接:https://blog.csdn.net/CDKingHang/article/details/132525535


文章作者: 煜总
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 煜总 !
  目录