当前位置: 首页 > news >正文

在linux上用nginx配置ssl应该怎么操作?下面是示例

在 Linux 上使用 Nginx 配置 SSL 的操作步骤如下:

一、安装 Nginx 和必要工具

# Ubuntu/Debian系统
sudo apt update
sudo apt install nginx openssl# CentOS/RHEL系统
sudo yum install epel-release
sudo yum install nginx openssl

二、获取 SSL 证书

有两种方式获取 SSL 证书:

1. 使用 Let's Encrypt 免费证书(推荐)
# 安装Certbot(证书管理工具)
# Ubuntu/Debian系统
sudo apt install certbot python3-certbot-nginx# CentOS/RHEL系统
sudo yum install certbot python3-certbot-nginx# 自动获取并配置证书(会自动修改Nginx配置)
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
2. 使用自签名证书(测试环境)
# 创建证书目录
sudo mkdir -p /etc/ssl/certs /etc/ssl/private# 生成自签名证书(有效期365天)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ssl/private/yourdomain.com.key \-out /etc/ssl/certs/yourdomain.com.crt

注意:生成过程中需填写域名等信息,Common Name 必须填写你的域名(如yourdomain.com)。

三、配置 Nginx 支持 SSL

编辑 Nginx 配置文件(通常位于/etc/nginx/sites-available/yourdomain.com):

server {listen 80;server_name yourdomain.com www.yourdomain.com;# 强制HTTP跳转HTTPSreturn 301 https://$host$request_uri;
}server {listen 443 ssl;server_name yourdomain.com www.yourdomain.com;# SSL证书配置(Let's Encrypt方式)ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;# 自签名证书配置(测试环境)# ssl_certificate /etc/ssl/certs/yourdomain.com.crt;# ssl_certificate_key /etc/ssl/private/yourdomain.com.key;# SSL优化配置ssl_protocols TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;ssl_dhparam /etc/ssl/certs/dhparam.pem;  # 需额外生成(见下文)ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;ssl_ecdh_curve secp384r1;ssl_session_timeout 10m;ssl_session_cache shared:SSL:10m;ssl_session_tickets off;ssl_stapling on;ssl_stapling_verify on;resolver 8.8.8.8 8.8.4.4 valid=300s;resolver_timeout 5s;add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;add_header X-Frame-Options DENY;add_header X-Content-Type-Options nosniff;add_header X-XSS-Protection "1; mode=block";# 网站根目录配置root /var/www/yourdomain.com;index index.html index.htm;# 其他配置(如PHP处理等)location / {try_files $uri $uri/ =404;}
}

四、生成 DH 参数(可选但推荐)

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

五、验证配置并重启 Nginx

# 检查配置语法
sudo nginx -t# 重启Nginx服务
sudo systemctl restart nginx# 设置开机自启
sudo systemctl enable nginx

六、自动续期证书(Let's Encrypt 方式)

# 添加定时任务(每月执行一次检查,证书将在到期前自动续期)
sudo crontab -e
# 添加以下内容(保存退出)
0 12 * * * /usr/bin/certbot renew --quiet

七、测试 SSL 配置

访问https://yourdomain.com,确认网站可以正常访问且浏览器显示安全锁标志。可使用SSL Labs测试 SSL 配置的安全性。

常见问题

  1. 防火墙问题:确保 443 端口开放

    # Ubuntu/Debian(ufw)
    sudo ufw allow 'Nginx Full'# CentOS/RHEL(firewalld)
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
    
  2. 证书续期失败:检查 Certbot 日志(/var/log/letsencrypt/letsencrypt.log),确保域名解析正确且端口可访问。

  3. Nginx 配置错误:使用sudo nginx -t检查语法,错误信息会提示具体问题。

配置完成后,你的网站将通过 HTTPS 安全访问。

相关文章:

  • Python实现企业微信Token自动获取到SQLite存储
  • 微服务拆分 SpringCloud
  • 渲染学进阶——机械动力的渲染(3)
  • 对微服务的了解
  • 准确识别检索头,提高大模型长上下文能力
  • MyBatis与JPA有哪些不同?
  • 【MATLAB去噪算法】基于VMD联合小波阈值去噪算法(第六期)
  • CNN卷积神经网络实战(1)
  • 执行 PGPT_PROFILES=ollama make run下面报错,
  • 记录:安装VMware、Ubuntu、ROS2
  • Android实例项目【智能家居系统】实现数据库登录注册+动画效果+网页跳转+短信发送!!!
  • 65、【OS】【Nuttx】任务休眠与唤醒:nxsig_clockwait
  • BeikeShop - 一个开源、用户友好的跨境电子商务平台
  • [学习] 深入解析Z变换:从数学基础到工程应用
  • 基于高性能的光频域反射(OFDR)分布式光纤传感解决方案
  • 爬虫技术:从基础到高级,探索数据抓取的奥秘
  • 写实数字人课程制作平台:教育科技的未来已来
  • 在劲牌工厂,探寻一瓶草本酒的科技之旅
  • C++ 继承特性
  • 3-19 WPS JS宏调用工作表函数(JS 宏与工作表函数双剑合壁)学习笔记
  • ios软件开发培训班/seo优化方式包括
  • 网站建设html的好处/百度推广怎么登录
  • 辽宁省朝阳市做网站/中国站长之家网站
  • 产品推广介绍/优化网站排名的方法
  • 怎么建设网站后台/南宁百度推广代理商
  • 网站的标签修改/免费刷赞网站推广qq免费