Nginx通过OpenSSL配置Https及二级目录

举报
彭世瑜 发表于 2021/08/14 00:53:08 2021/08/14
【摘要】 Nginx通过OpenSSL配置Https及二级虚拟目录 1、创建私钥秘钥和证书 mkdir -p /usr/local/nginx/conf/ssl/ cd /usr/local/nginx/conf/ssl/ # 创建服务器私钥 openssl genrsa -des3 -out server.key 1024 # 创建签名请求的证书(CSR) openss...

Nginx通过OpenSSL配置Https及二级虚拟目录

1、创建私钥秘钥和证书

mkdir -p /usr/local/nginx/conf/ssl/
cd /usr/local/nginx/conf/ssl/

# 创建服务器私钥
openssl genrsa -des3 -out server.key 1024

# 创建签名请求的证书(CSR)
openssl req -new -key server.key -out server.csr

# 标记证书使用上述私钥和CSR
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2、报错处理:密码错误

SSL_CTX_use_PrivateKey_file("/etc/nginx/key/server.key") failed 
(SSL: error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0906A068:PEM routines:PEM_do_header:bad password read error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib) 

  
 
  • 1
  • 2
# 输入一次私钥的密码
openssl rsa -in server.key -out unserver.key 

cp unserver.key server.key

# 重启nginx

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3、配置Nginx

server { listen 443 ssl; server_name  localhost; ssl on; ssl_certificate /usr/local/nginx/conf/ssl/server.crt; ssl_certificate_key  /usr/local/nginx/conf/ssl/server.key; ssl_session_timeout  5m; ssl_ciphers  HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers  on; # 这是静态主页 location / { root   /www; index  index.html index.htm; }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

会出现隐私设置错误,继续访问就可以

参考:
nginx配置https

4、Nginx配置二级目录

server { listen 80; server_name  localhost; # 这是静态主页 location / { root   /www; index  index.html index.htm; } # 这是二级虚拟目录 # 注意斜杆/: # 访问 https://localhost/data/ # 代理 http://127.0.0.1:5003/ location /data/ { proxy_pass http://127.0.0.1:5003/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

5、报错:nginx:[emerg]unknown directive “ssl”

# 到解压的nginx目录下
yum -y install openssl openssl-devel

./configure --with-http_ssl_module

# 切记不能make install 会覆盖
make # 备份
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

# 拷贝新的文件
cp objs/nginx /usr/local/nginx/sbin/nginx

# 检查重启
nginx -t

nginx -s reload

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

参考:
nginx:[emerg]unknown directive “ssl”

参考:
Nginx 反向代理 虚拟二级目录

6、js后加?v=版本号 可以起到刷新缓存的作用

例如:

https://localhost/static/main.js?v=20191227

  
 
  • 1

每次更新的时候修改版本号,通知浏览器获取新的文件

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/103755523

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。