• 精创网络
  • 精创网络
  • 首页
  • 产品优势
  • 产品价格
  • 产品功能
  • 新闻中心
  • 关于我们
  • 在线客服
  • 登录
  • DDoS防御和CC防御
  • 精创网络云防护,专注于大流量DDoS防御和CC防御。可防止SQL注入,以及XSS等网站安全漏洞的利用。
  • 免费试用
  • 新闻中心
  • 关于我们
  • 资讯动态
  • 帮助文档
  • 白名单保护
  • 常见问题
  • 政策协议
  • 帮助文档
  • 如何在Ubuntu上配置Nginx与SSL,提升安全性
  • 来源:www.jcwlyf.com浏览:10更新:2025-11-12
  • 在当今数字化时代,网站的安全性至关重要。Ubuntu作为一种广泛使用的开源操作系统,搭配Nginx这一高性能的Web服务器,再结合SSL证书实现加密传输,能够显著提升网站的安全性。本文将详细介绍如何在Ubuntu上配置Nginx与SSL,以增强网站的安全性。

    一、安装Nginx

    首先,我们需要在Ubuntu系统上安装Nginx。打开终端,使用以下命令更新系统的软件包列表:

    sudo apt update

    更新完成后,执行以下命令来安装Nginx:

    sudo apt install nginx

    安装过程中,系统会提示你确认安装,输入“Y”并回车即可。安装完成后,使用以下命令启动Nginx服务:

    sudo systemctl start nginx

    为了让Nginx在系统启动时自动运行,可以使用以下命令将其设置为开机自启:

    sudo systemctl enable nginx

    你可以通过访问服务器的公网IP地址来验证Nginx是否安装成功。如果在浏览器中看到“Welcome to nginx!”页面,说明Nginx已经成功安装并运行。

    二、获取SSL证书

    SSL证书可以通过多种方式获取,这里我们介绍使用Let's Encrypt来免费获取SSL证书。Let's Encrypt是一个提供免费SSL证书的权威机构,它的证书被广泛认可。

    首先,需要安装Certbot,它是一个用于管理Let's Encrypt证书的工具。在终端中执行以下命令来安装Certbot和Nginx插件:

    sudo apt install certbot python3-certbot-nginx

    安装完成后,使用以下命令来获取SSL证书:

    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

    请将“yourdomain.com”替换为你的实际域名。Certbot会自动检测Nginx的配置文件,并为你的域名配置SSL证书。在执行命令的过程中,Certbot会提示你输入一些信息,如邮箱地址等,按照提示填写即可。

    如果一切顺利,Certbot会成功为你的域名获取并安装SSL证书。同时,它会自动更新Nginx的配置文件,将HTTP请求重定向到HTTPS。

    三、配置Nginx支持SSL

    虽然Certbot会自动更新Nginx的配置文件,但我们还是可以手动检查和调整配置。打开Nginx的配置文件,通常位于“/etc/nginx/sites-available/yourdomain.com”:

    sudo nano /etc/nginx/sites-available/yourdomain.com

    在配置文件中,你应该能看到类似以下的配置:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        return 301 https://$server_name$request_uri;
    }
    
    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    
        # 其他配置项
    }

    其中,“ssl_certificate”和“ssl_certificate_key”指定了SSL证书和私钥的路径。确保这些路径正确无误。

    此外,你还可以添加一些SSL相关的配置来增强安全性,例如:

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;

    这些配置指定了支持的SSL协议和加密套件,只允许使用安全的协议和套件。

    配置完成后,保存并关闭文件。使用以下命令检查Nginx配置文件的语法是否正确:

    sudo nginx -t

    如果语法检查通过,使用以下命令重新加载Nginx服务,使配置生效:

    sudo systemctl reload nginx

    四、配置HTTP严格传输安全(HSTS)

    HTTP严格传输安全(HSTS)是一种安全机制,它可以强制浏览器只通过HTTPS访问网站,从而防止中间人攻击。在Nginx的配置文件中添加以下配置来启用HSTS:

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    将上述配置添加到“server”块中,例如:

    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    
        # 其他配置项
    }

    “max-age”指定了HSTS头的有效期,单位为秒。“includeSubDomains”表示该规则也适用于子域名。

    保存配置文件后,再次检查语法并重新加载Nginx服务。

    五、配置OCSP装订

    OCSP装订是一种用于验证SSL证书有效性的机制,它可以减少浏览器与证书颁发机构之间的通信,提高网站的性能和安全性。在Nginx的配置文件中添加以下配置来启用OCSP装订:

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    将上述配置添加到“server”块中,例如:

    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 8.8.8.8 8.8.4.4 valid=300s;
        resolver_timeout 5s;
    
        # 其他配置项
    }

    “ssl_stapling”和“ssl_stapling_verify”分别启用和验证OCSP装订。“resolver”指定了DNS解析器的地址,“valid”指定了DNS解析结果的有效期,“resolver_timeout”指定了DNS解析的超时时间。

    保存配置文件后,检查语法并重新加载Nginx服务。

    六、定期更新SSL证书

    Let's Encrypt的SSL证书有效期为90天,因此需要定期更新证书以确保网站的安全性。Certbot提供了自动更新证书的功能,可以使用以下命令来设置自动更新:

    sudo systemctl enable certbot.timer
    sudo systemctl start certbot.timer

    上述命令将启动一个定时任务,每天检查SSL证书的有效期,如果证书即将过期,Certbot会自动更新证书。

    七、监控和日志记录

    为了及时发现和处理安全问题,需要对Nginx的运行状态和访问日志进行监控。Nginx的访问日志通常位于“/var/log/nginx/access.log”,错误日志位于“/var/log/nginx/error.log”。可以使用以下命令查看日志文件:

    sudo tail -f /var/log/nginx/access.log
    sudo tail -f /var/log/nginx/error.log

    此外,还可以使用一些监控工具,如Prometheus和Grafana,来对Nginx的性能和安全指标进行监控和可视化。

    通过以上步骤,你可以在Ubuntu上成功配置Nginx与SSL,提升网站的安全性。同时,定期更新证书、监控日志等操作也是保障网站安全的重要措施。希望本文对你有所帮助。

  • 关于我们
  • 关于我们
  • 服务条款
  • 隐私政策
  • 新闻中心
  • 资讯动态
  • 帮助文档
  • 网站地图
  • 服务指南
  • 购买流程
  • 白名单保护
  • 联系我们
  • QQ咨询:189292897
  • 电话咨询:16725561188
  • 服务时间:7*24小时
  • 电子邮箱:admin@jcwlyf.com
  • 微信咨询
  • Copyright © 2025 All Rights Reserved
  • 精创网络版权所有
  • 皖ICP备2022000252号
  • 皖公网安备34072202000275号