# Nginx 颁发自签证书

#1.Nginx 颁发自签证书

对于CentOS-7 的系统,默认 nginx 的SSL配置路径是 /etc/pki/nginx/
建议先进入这个目录,然后再执行下文的生成操作,最后把 nginx.key 移动到 private 目录中即可

首先,确保安装了OpenSSL库,并且安装Nginx时使用了 –with-http_ssl_module参数。

1.1:进入生成证书的目录

cd /etc/pki/nginx/

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 中增加上述描述信息即可,见下图

posted @   Hi_埃里克  阅读(323)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示