技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页Linux>正文
Linux系统下nginx服务器添加https自签证书
2025年12月04日 Linux 暂无评论 ⁄ 被围观 22次+

需求:

给当前的网站添加自签的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-devel

yum 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 = 2048

prompt = no

distinguished_name = dn

req_extensions = v3_req

[dn]

C = CN

ST = Beijing

L = Beijing

O = MyCompany

OU = IT

CN = 10.189.189.189

emailAddress = admin@example.com

[v3_req]

basicConstraints = CA:FALSE

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

subjectAltName = @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验证生成的证书是否包含 SAN

openssl 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;

listen [::]:28443 ssl; #IPv6 支持

http2 on;  #启用 HTTP/2(可选但推荐)

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自签证书完成。

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2025 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接
陕ICP备11001040号-3