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

②190706903
③203744115

