网站首页 > 技术教程 正文
Nginx HTTPS 配置教程
在当今网络安全日益重要的背景下,使用HTTPS协议来保护网站数据传输变得尤为重要。Nginx作为一个高性能的Web服务器和反向代理服务器,支持HTTPS配置。本文将详细介绍如何在Nginx上配置HTTPS。
一、准备工作
- 操作系统:本文以CentOS 7为例,但其他Linux发行版类似。
- Nginx安装:确保Nginx已经安装并运行。
- SSL证书:获取有效的SSL证书,可以从Let's Encrypt等免费证书提供商获取。
二、安装Certbot获取免费SSL证书
Certbot是一个免费的工具,可以自动获取和更新Let's Encrypt提供的SSL证书。
- 安装EPEL存储库:
- sudo yum install epel-release -y
- 安装Certbot:
- sudo yum install certbot python2-certbot-nginx -y
- 获取SSL证书:
- sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
- yourdomain.com 和 www.yourdomain.com 替换为实际域名。
- 按照提示完成域名验证和证书获取。
三、手动配置Nginx使用SSL证书
如果不使用Certbot自动配置,可以手动配置Nginx使用SSL证书。
- 生成自签名证书(用于测试):
- sudo openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/nginx/ssl/nginx-selfsigned.key -out /etc/nginx/ssl/nginx-selfsigned.crt
- 该命令生成一个自签名证书和私钥,保存路径为 /etc/nginx/ssl/。
- 创建Nginx配置文件:
编辑Nginx配置文件,添加以下内容: - server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name yourdomain.com www.yourdomain.com; ssl_certificate /etc/nginx/ssl/nginx-selfsigned.crt; ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; root /var/www/html; index index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; } }
- listen 80:监听80端口,重定向所有HTTP请求到HTTPS。
- listen 443 ssl:监听443端口,并启用SSL。
- ssl_certificate 和 ssl_certificate_key:指定SSL证书和密钥路径。
- ssl_protocols 和 ssl_ciphers:指定使用的SSL/TLS协议和加密套件。
- 测试Nginx配置并重启服务:
- sudo nginx -t sudo systemctl restart nginx
- nginx -t:测试Nginx配置文件语法。
- systemctl restart nginx:重启Nginx服务使配置生效。
四、优化HTTPS配置
- 启用HTTP/2:
HTTP/2提供更好的性能,可以通过在443端口配置中添加 http2启用。 - listen 443 ssl http2;
- 配置更严格的安全选项:
- ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
- ssl_prefer_server_ciphers on:优先使用服务器指定的加密套件。
- ssl_session_cache 和 ssl_session_timeout:配置SSL会话缓存,提高性能。
- Strict-Transport-Security:强制浏览器通过HTTPS访问。
五、自动更新SSL证书
使用Certbot自动更新证书,确保证书不会过期。
- 创建Cron任务:
- echo "0 0 * * * /usr/bin/certbot renew --quiet" | sudo tee -a /etc/crontab > /dev/null
- 该命令每天午夜运行Certbot更新证书。
思维导图
通过本文的详细步骤和配置示例,您可以在Nginx上成功配置HTTPS,并确保通信的安全性和效率。希望这些内容对您有所帮助。
猜你喜欢
- 2024-10-11 域名备案流程总结(域名备案流程总结)
- 2024-09-19 一台服务器80端口绑定多个域名(多台服务器共用一个域名)
- 2024-09-19 nginx https 配置(nginx跨域配置)
- 2024-09-19 nginx限制来路域名和指定user-agent对接口的请求
- 2024-09-19 nginx 配置https(nginx配置https证书)
- 2024-09-19 使用nginx配置动态域名解析(nginx 动态域名解析)
- 2024-09-19 教你怎么申请单域名SSL证书(怎样申请一个域名)
- 2024-09-19 云原生尝试——docker容器域名绑定
- 2024-09-19 Nginx重定向中把二级域名增加后缀
- 2024-09-19 第9课 Kubernetes之服务发现,CoreDNS配置和域名解析过程
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)