文件准备
下载文件并上传到服务器,这里使用centos 7.5
本文涉及的程序文件已打包可以直接下载。 点击下载
下载国密版openssl
https://www.gmssl.cn/gmssl/index.jsp
下载稳定版nginx
http://nginx.org/en/download.html
我反正是把gmssl包放 /usr/local 下,nginx 包放 /usr/local/src 下 ,到时候因人而异把
修改源码包中
/usr/local/src/nginx-1.24.0/auto/lib/openssl/conf 文件内容中
$OPENSSL/.openssl 路径为 $OPENSSL
编译nginx
./configure \ --without-http_gzip_module \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_v2_module \ --with-file-aio \ --with-openssl="/usr/local/gmssl" \ --with-cc-opt="-I/usr/local/gmssl/include" \ --with-ld-opt="-lm"
执行make&& make install 进行安装,默认会装到 /usr/local/nginx 下
下面是最恶心的步骤,就是生成国密证书什么了
https://www.gmcrt.cn/gmcrt/index.jsp
提交后下载的证书文件压缩包内容如下,
如下四个上传到 服务器并在nginx中进行配置
自行上传服务器的目录好了,到时候配置指定就行
修改nginx配置文件,如下,证书先配置 签名证书和私钥,再配置加密证书和私钥,一共四份文件
server {
listen 6080;
listen 7080 ssl;
server_name localhost;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /usr/local/nginx/certs/sm2.test.sig.crt.pem;
ssl_certificate_key /usr/local/nginx/certs/sm2.test.sig.key.pem;
ssl_certificate /usr/local/nginx/certs/sm2.test.enc.crt.pem;
ssl_certificate_key /usr/local/nginx/certs/sm2.test.enc.key.pem;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:AES128-SHA:DES-CBC3-SHA:ECC-SM4-CBC-SM3:ECC-SM4-GCM-SM3;
ssl_verify_client off;
location / {
root html;
index index.html index.htm;
}
}
访问测试,chrome edge 等浏览器 都提示无法访问 如下:
下载国密浏览器,可以正常进行访问,显示国密字样的就表示没问题了