返回文章列表
网络安全

怎么给Linux系统下nginx服务器添加https自签证书?

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

需求:

给当前的网站添加自签的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自签证书完成。


本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。

分享文章
合作伙伴

本站所有广告均是第三方投放,详情请查询本站用户协议