#1.Nginx 颁发自签证书
对于CentOS-7 的系统,默认 nginx 的SSL配置路径是 /etc/pki/nginx/
建议先进入这个目录,然后再执行下文的生成操作,最后把 nginx.key
移动到 private 目录中即可
首先,确保安装了OpenSSL库,并且安装Nginx时使用了 –with-http_ssl_module
参数。
1.1:进入生成证书的目录
1.2:使用openssl创建创建服务器私钥,输入相应提示的信息
| openssl genrsa -des3 -out nginx.key 2048(nginx 是自己定义的,文件名而已) |
输入密码后,再次重复输入确认密码。记住此密码,后面会用到
1.3:创建证书签名请求
| openssl req -new -key nginx.key -out nginx.csr |
1.4:清除以SSL启动Nginx时提示必须输入密钥
| cp nginx.key nginx.key.org |
| openssl rsa -in nginx.key.org -out nginx.key |
1.5:使用刚生成的私钥和CSR进行证书签名
| openssl x509 -req -days 3650 -in nginx.csr -signkey nginx.key -out nginx.crt |
1.6:移动私钥到 private 目录(情况由 Nginx 配置文件中的 ssl_certificate_key
决定)
| # cd /etc/pki/nginx/ |
| \cp -rf nginx.key private/ |
1.7: 在nginx 的 server{}
中加入以下配置(如果没有):
| listen 443 ssl http2 default_server; |
| listen [::]:443 ssl http2 default_server; |
| |
| ssl_certificate "/etc/pki/nginx/nginx.crt"; |
| ssl_certificate_key "/etc/pki/nginx/private/nginx.key"; |
| ssl_session_cache shared:SSL:1m; |
| ssl_session_timeout 10m; |
| ssl_ciphers HIGH:!aNULL:!MD5; |
| ssl_prefer_server_ciphers on; |
#2. 常见问题处理
The plain HTTP request was sent to HTTPS port
Nginx
监听4441
端口使用https
协议,浏览器输入http://hostname:4441
时会报这样的错误。在使用 http 访问 https 时,就会报497
错误
用error_page 处理一下即可:
| server { |
| listen 4441 ssl; |
| ... |
| ... |
| error_page 497 https://$host:4441; |
| } |
Blocked loading mixed active content
2、代码:
| <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> |
PS: 对于我司系统来说,只要在 fs_web/index.html
中的 header 中增加上述描述信息即可,见下图

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性