【nginx】配置https 证书生成的方法
https://blog.51cto.com/davidbj/1613780 (Nginx + openssl 搭建https服务)
https://blog.csdn.net/zssai2015/article/details/85049905(主要参考解决域名问题)
1 2 3 4 5 6 7 | OpenSSL 1.0.1e-fips 11 Feb 2013 built on: reproducible build, date unspecified platform: linux-x86_64 options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) compiler: gcc -I. -I.. -I../ include -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM OPENSSLDIR: "/etc/pki/tls" engines: rdrand dynamic |
# vim /etc/pki/tls/openssl.cnf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 找到v3_req[ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [ alt_names ] DNS.1 = *.fxk.site DNS.2 = *.myframe.site [ v3_ca ] |
1.首先要生成服务器的私钥:
1 | # openssl genrsa -des3 -out server.key 2048 |
执行这个命令之后,再启动nginx时,就无需输入密码
1 | # openssl rsa -in server.key -out server.key |
1 | # openssl req - new -key server.key -out server.csr |
3、对客户端也做同样的命令生成key及csr文件(配置流程和server.csr一样,但是Common Name需要区分开)
1 2 3 | # openssl genrsa -des3 -out client.key 2048 # openssl req - new -key client.key -out client.csr |
4、生成CSR证书文件必须有CA 机构的签名才可以形成证书。这里制作自己的CA生成一个key文件CA.key和一个根证书ca.crt
1 | # openssl req - new -x509 -keyout ca.key -out ca.crt -config /etc/pki/tls/openssl.cnf -extensions v3_req |
5、创建openssl.conf 生成的配置文件
1 2 3 4 5 6 7 8 | #根据openssl.cnf生成配置文件 touch /etc/pki/CA/{index.txt,serial} #设置副本名称开始内容 echo 01 > /etc/pki/CA/serial #设置副本证书存放目录 mkdir /etc/pki/CA/newcerts |
6、 用CA的证书为刚才生成的server.csr 和 client.csr进行文件签名
1 2 3 | # openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf -extensions v3_req # openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf -extensions v3_req |
7、配置Nginx SSL
1 2 3 4 5 6 7 8 9 10 11 12 | listen 443 ssl; ssl on; ssl_certificate /etc/nginx/conf.d/server.crt; ssl_certificate_key /etc/nginx/conf.d/server.key; ssl_client_certificate /etc/nginx/conf.d/ca.crt; ssl_verify_client off; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; |
8、客户端导入证书
证书安装及使用把刚才生成的证书: 根证书ca.crt和客户端client.crt(client.pfx)安装到客户端,ca.crt 安装到信任的机构,client.crt直接在windows 安装或安装到个人证书位置。(如果是IE浏览器,需要安装client.pfx证书,在导入的时候需要输入证书签发的密码)
------------------------------------------------------------------- 额外的命令 -------------------------------------------------------
证书格式转换:
删除私钥密码:
证书撤销:
查看证书信息:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律