1.首先确认安装nginx 和 openssl
执行nginx -v 和 openssl version
- 生成秘钥key,运行:
创建一个生成文件的目录
cd /etc/nginx/
mkdir ssl_key
然后执行密钥key
openssl genrsa -des3 -out server.key 2048
3.创建服务器证书的申请文件server.csr,运行:
这里会需要输入一些基本信息,随便输入即可,例如都可以输入你的英文名字
openssl req -new -key server.key -out server.csr
4.创建CA证书:
这里会需要输入一些基本信息,随便输入即可,例如都可以输入你的英文名字
openssl req -new -x509 -key server.key -out ca.crt -days 3650
5.创建自当前日期起有效期为期十年的服务器证书server.crt:
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
6.然后可以查看生成的文件夹下的文件
ls你的文件夹,可以看到一共生成了5个文件
ca.crt ca.srl server.crt server.csr server.key
其中,server.crt和server.key是nginx需要的证书文件。
7.配置免输入密码
openssl rsa -in server.key -out server.key.unsecure
#去除密码
mv server.key server2.key
openssl rsa -in server2.key -out server.key
#再次生成crt证书
openssl x509 -req -days 3000 -in server.csr -signkey server.key -out server.crt
nginx配置文件:
server {
listen 443 ssl;
server_name localhost;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
add_header Content-Security-Policy "upgrade-insecure-requests";
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# 接口代理
location /api {
proxy_set_header Host $host:$server_port;
proxy_pass_header Server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_pass http://172.16.1.246:8080/api;
}
}