网络安全
怎么给Linux系统下nginx服务器添加https自签证书?
小站
2025-12-05
5天前

需求:
给当前的网站添加自签的https证书http访问:http://10.189.189.189:9997/#/public/login实现https访问:https://10.189.189.189:28443/#/public/login目前http使用的是9997端口,https计划使用28443端口,需要提前在防火墙放行该端口。 操作: 登录服务器进行操作 1、创建https证书
确保机器上安装了openssl和openssl-develyum install openssl openssl-devel
#创建证书存放目录mkdir -p /data/server/nginx/conf/cert/cd /data/server/nginx/conf/cert/
1.1创建服务器私钥openssl genpkey -algorithm RSA -out server.key
1.2编写 SAN 配置文件vi san.conf[req]default_bits = 2048prompt = nodistinguished_name = dnreq_extensions = v3_req[dn]C = CNST = BeijingL = BeijingO = MyCompanyOU = ITCN = 10.189.189.189emailAddress = admin@example.com[v3_req]basicConstraints = CA:FALSEkeyUsage = nonRepudiation, digitalSignature, keyEnciphermentsubjectAltName = @alt_names[alt_names]IP.1 = 10.189.189.189 #服务器ip地址IP.2 = 10.189.189.190 #可以写多个IP地址IP.3 = 192.168.1.100# DNS.1 = your.domain.com # 如果有域名也加上:wq! #保存退出
1.3使用该配置生成 CSR(证书签名请求)openssl req -new -key server.key -out server.csr -config san.conf
1.4用私钥自签名生成最终证书openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extfile san.conf -extensions v3_req
1.5验证生成的证书是否包含 SANopenssl x509 -in server.crt -text -noout | grep -A5 "Subject Alternative Name"
1.6配置nginx服务器使用私有证书我们用到有2个文件,私有证书server.crt和私钥server.key将这2个文件复制到服务器上的指定目录,例如 /data/server/nginx/conf/cert在服务器的配置文件中,指定私有证书和私钥的路径
在nginx配置文件中添加下面的代码################################listen 28443 ssl http2; #启用 HTTP/2(可选但推荐)listen [::]:28443 ssl http2; #IPv6 支持server_name _; #server_name 可简化为 _ 或留空(因使用 IP 访问)ssl_certificate /data/server/nginx/conf/cert/server.crt;ssl_certificate_key /data/server/nginx/conf/cert/server.key;ssl_session_timeout 10m;ssl_session_cache shared:SSL:10m;ssl_protocols TLSv1.2 TLSv1.3; #安全协议(禁用 TLSv1.0/1.1)#强密码套件ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;ssl_prefer_server_ciphers off; #现代标准:关闭服务器优先################################
cd /data/server/nginx/sbin./nginx -t #验证配置文件是否正确最后重启nginx服务 1.7打开浏览器验证https是否已经生效 至此,Linux系统下nginx服务器添加https自签证书完成。
本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。
分享文章



