说明:因linux版的nginx默认编译是不带有SSL协议的,需要编译的时候增加该模块,又因为国际版的OpenSSL不支持国密,但是现在又要求需要配置多张国密证书。试过很多网上的各种解决办法都是让安装国密GMSSL,但是因为centos7已经安装有国际的OpenSSL,所以再安装多一个GMSLL的时候中途老出错,最后干脆直接不安装GMSSL,直接编译nginx的时候就选择GMSSL的源码进行编译。
1、到官网下载GMssl
参考:GitHub - guanzhi/GmSSL: 支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱
下载安装包GmSSL-master.zip
解压:unzip GmSSL-master.zip
2、到官网下载nginx
参考:nginx news
下载安装包
nginx-1.22.0.tar.gz
- 进入解压包进行相关编译安装
- cd /usr/local/nginx-1.22.0/
- #--with-openssl= 这个是解压后的GMSSL源码地址
- ./configure --prefix=/usr/local/nginx \
- --with-http_ssl_module \
- --with-http_v2_module \
- --with-http_realip_module \
- --with-http_stub_status_module \
- --with-http_gzip_static_module \
- --with-pcre \
- --with-stream \
- --with-stream_ssl_module \
- --with-stream_realip_module \
- --with-openssl=/usr/local/GmSSL-master
-
-
- make
- make install
-
3、配置nginx证书
- server{
- listen 443 ssl;
- ssl_certificate /usr/local/nginx/xt.pem;
- ssl_certificate_key /usr/local/nginx/xt.key;
-
- ssl_session_cache shared:SSL:1m; #开启缓存 大小1M
- ssl_session_timeout 5m; # 指定客户端可以重用会话参数的时间(超时之后不可使用)
-
- #ssl_verify_client on;
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECC-SM4-SM3:ECDHE-SM4-SM3:SM2-WITH-SMS4-SM3:ECDHE-SM2-WITH-SMS4-GCM-SM3:HIGH:!aNULL:!MD5:!RC4:!DHE;
- ssl_prefer_server_ciphers on;
- location / {
- proxy_pass http://172.16.100.1;
- proxy_redirect default;
- }
- }
-
-
4、启动nginx
cd /usr/local/nginx/bin
./nginx
其他nginx操作
查询nginx安装目录
where is nginx
进入安装目录
cd /usr/local/nginx/sbin启动nginx
./nginx
重启nginx
./nginx -s reload关闭
./nginx -s stop
5、访问网站
