nginx 配置 ssl

 公有云:nginx 配置 SSL - 公有云文档中心 (qingcloud.com)

自签,参考:https 自签名SSL证书 - aaron_agu - 博客园 (cnblogs.com)

 自签,可以使用acme.sh: 用acme.sh帮你免费且自动更新的HTTPS证书,省时又省力 - 知乎 (zhihu.com)

第一步:Nginx的ssl模块安装

在配置ssl证书之前,要确保你的nginx已经安装了ssl模块,一般情况下自己安装的nginx都是不存在ssl模块的。

这里先检查下自己是否存在ssl模块:

进入到你的nginx安装目录下面,我的目录是在(/usr/local/nginx),如果你的nginx安装步骤和上面的文章一致的话,那你的目录和我应该是一致的

进入到目录的sbin目录下,输入

#注意这里是大写的V,小写的只显示版本号

./nginx -V

如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过)。

一般情况下都是不存在ssl模块的,接下来进入到你的解压缩后的nginx目录,注意这里不是nginx安装目录,是tar包解压缩后的目录,我的是在(/root/nginx),进入目录后,输入

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

接下来执行

make #切记不要执行make install,否则会重新安装nginx

参考:Nginx配置Https(详细、完整) - huiblog - 博客园 (cnblogs.com)

第二步

第1步-创建SSL证书

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

key:/etc/ssl/private/xxx.key
证书:/etc/ssl/certs/xxx.crt

需要输入与服务器关联的域名或服务器的公共IP地址 

Output
 Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bouncy Castles, Inc.
Organizational Unit Name (eg, section) []:Ministry of Water Slides
Common Name (e.g. server FQDN or YOUR name) []:your_domain_or_server_IP_address
Email Address []:admin@your_domain.com

 步骤2 —配置Nginx使用SSL 

nginx配置文件路径:

/etc/nginx/nginx.conf
/etc/nginx/conf.d

nginx启动脚本路径:

/usr/sbin/nginx
检查配置文件
./nginx -t
重新加载配置文件
./nginx -s reload

配置ssl

server {
	listen		80;
	server_name	ti.watcherlab.com;
	rewrite		^(.*)$	https://${server_name}$1	permanent; 
                        //配置http自动跳转https
}

server {
listen			443 ssl;                     //服务接口
server_name		ti.watcherlab.com;           //域名或者ip
	
ssl_certificate              /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key          /etc/ssl/private/nginx-selfsigned.key;
ssl_session_cache            shared:le_nginx_SSL:1m;
ssl_session_timeout          1440m;
ssl_protocols                TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers                  HIGH:!ADH:!MD5;
ssl_ciphers                  "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS";

ssl_prefer_server_ciphers    on;
error_page 497 301 https://$http_host$request_uri; 
                         //配置http自动跳转https,需要把上面的server{}全部注释掉
}

查看配置状态:

nmap -sV -p 34627 --script ssl-enum-ciphers 192.168.1.213 

 参考:(15条消息) debian nginx_如何在Debian 10上为Nginx创建自签名SSL证书_cukw6666的博客-CSDN博客

点击劫持漏洞修复

在nginx配置中的相应的location 下添加

 add_header X-Frame-Options SAMEORIGIN;文章来源地址https://uudwc.com/A/XN3kZ

原文地址:https://blog.csdn.net/weixin_51761871/article/details/127571103

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月18日 12:39
下一篇 2023年06月18日 12:40