特网科技为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。

当前位置:首页 > 行业资讯 > SSL证书 > 正文内容

Ubuntu Debian系统安装与配置指南

2025-10-23SSL证书503

海外云服务器 40个地区可选            亚太云服务器 香港 日本 韩国

云虚拟主机 个人和企业网站的理想选择            俄罗斯电商外贸虚拟主机 赠送SSL证书

美国云虚拟主机 助力出海企业低成本上云             拨号云主机


在当今互联网环境下,网站安全已成为开发者与运维人员必须高度重视的核心议题,随着用户对隐私保护意识的增强以及主流浏览器对非加密网站的“不安全”标记,部署HTTPS已不再是可选项,而是现代Web服务的基本标准。

HTTPS通过SSL/TLS协议实现客户端与服务器之间的数据加密传输,有效防止中间人攻击、会话劫持和敏感信息泄露,作为全球最流行的高性能Web服务器之一,Nginx广泛应用于各类网站架构中,无论是静态资源服务还是反向代理场景,支持HTTPS都至关重要。

本文将系统讲解如何为Nginx配置SSL证书,涵盖两种主要方式:使用OpenSSL生成自签名证书(适用于测试环境) 和 利用Let’s Encrypt免费获取受信任的公开证书(推荐用于生产环境),同时提供高级安全配置建议,帮助你构建一个安全、可靠且合规的HTTPS服务。


SSL/TLS证书基础概念

SSL(Secure Sockets Layer)是早期的安全通信协议,其后续演进版本为TLS(Transport Layer Security),目前普遍统称为SSL/TLS,该协议通过公钥加密机制,在客户端与服务器之间建立安全连接。

SSL证书是一种由权威机构签发的数字凭证,包含以下关键信息:

  • 域名(Common Name 或 Subject Alternative Names)
  • 公钥
  • 有效期(起止时间)
  • 颁发机构(CA, Certificate Authority)
  • 签名算法等元数据

当用户访问HTTPS站点时,浏览器会验证证书是否由可信CA签发、域名是否匹配、是否过期等,若一切正常,则建立加密通道进行通信;否则将提示安全警告。

⚠️ 注意:自签名证书未被主流浏览器信任,仅适合内网或开发测试用途;正式上线网站应使用权威CA签发的证书。


环境准备

在开始配置前,请确保已完成以下准备工作:

  1. 安装并运行Nginx服务

    根据操作系统选择对应命令:

    # CentOS/RHEL 7/8
    sudo yum install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
    # Ubuntu/Debian
    sudo apt update
    sudo apt install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
  2. 确认域名解析正确

    确保你的域名(如 example.com)已通过DNS解析指向当前服务器IP地址,这是申请公共证书的前提条件。

  3. 开放防火墙端口

    开放HTTP(80)和HTTPS(443)端口:

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

方法一:生成自签名SSL证书(适用于测试/开发环境)

自签名证书无需第三方认证,创建简单快捷,常用于本地开发、内部系统或演示项目,但由于缺乏信任链,浏览器会显示“您的连接不是私密连接”警告,不适合面向公众的生产环境。

使用OpenSSL生成密钥与证书

首先创建SSL证书存储目录:

sudo mkdir -p /etc/nginx/ssl

执行以下命令生成2048位RSA私钥及自签名证书,有效期设为365天:

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

执行过程中会提示输入一些基本信息,其中最关键的是 Common Name (CN),请填写你要保护的域名(example.com),其他字段可按需填写或留空。

✅ 提示:如果需要支持多个子域名,可在后续使用SAN(Subject Alternative Name)扩展功能,但自签名证书仍无法避免浏览器警告。

配置Nginx启用HTTPS

编辑Nginx站点配置文件(路径可能因系统而异):

sudo vim /etc/nginx/conf.d/default.conf

添加如下HTTPS server块:

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate     /etc/nginx/ssl/nginx-selfsigned.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key;
    # 推荐使用的TLS版本
    ssl_protocols TLSv1.2 TLSv1.3;
    # 安全加密套件
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
    ssl_prefer_server_ciphers off;
    # 会话缓存优化
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    root /var/www/html;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}

测试并重启Nginx

验证配置语法无误后重新加载服务:

sudo nginx -t
sudo systemctl reload nginx

此时可通过 https://example.com 访问网站,虽然浏览器提示证书不受信任,但数据传输已在加密通道中完成。


方法二:使用Let’s Encrypt获取免费可信SSL证书(推荐用于生产环境)

Let’s Encrypt 是一个非营利性、自动化、开放的证书颁发机构,致力于推动全网HTTPS普及,它提供的证书被所有主流浏览器信任,且完全免费。

配合 Certbot 工具,可以一键完成证书申请、自动配置Nginx并设置定期续期,极大简化运维工作。

安装Certbot及其Nginx插件

根据不同发行版安装依赖包:

# Ubuntu/Debian
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
# CentOS/RHEL(需启用EPEL源)
sudo yum install epel-release -y
sudo yum install certbot python3-certbot-nginx -y

自动申请并配置SSL证书

运行以下命令为指定域名申请证书:

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

Certbot 将自动执行以下操作:

  • 扫描现有的Nginx配置
  • 向Let’s Encrypt发起证书申请
  • 验证域名所有权(通过HTTP-01挑战)
  • 更新Nginx配置以启用HTTPS
  • 可选地将HTTP请求重定向至HTTPS(强烈建议开启)

过程中需提供管理员邮箱,用于接收证书到期提醒和紧急通知。

检查自动续期机制

Let’s Encrypt证书有效期仅为 90天,但Certbot默认会创建定时任务(cron job),每30天尝试自动续期。

手动测试续期功能是否正常:

sudo certbot renew --dry-run

若输出显示“Congratulations, all renewals succeeded”,说明自动续期机制已就绪。

🔔 建议:定期检查 /var/log/letsencrypt/letsencrypt.log 日志,确保无人值守续期稳定运行。


高级安全配置建议

为进一步提升HTTPS安全性,可在Nginx中加入以下最佳实践配置:

# 启用强加密协议
ssl_protocols TLSv1.2 TLSv1.3;
# 使用高强度加密套件
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES128-GCM-SHA256;
# 不优先使用服务器端加密套件(兼容性考虑)
ssl_prefer_server_ciphers off;
# 启用SSL会话缓存,提高性能
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# HSTS(HTTP Strict Transport Security)强制浏览器始终使用HTTPS
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
# 防止MIME类型嗅探攻击
add_header X-Content-Type-Options nosniff;
# 防止点击劫持(Clickjacking)
add_header X-Frame-Options DENY;
安全策略(CSP),可根据实际需求调整
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https:; object-src 'none';";

💡 建议使用

扫描二维码推送至手机访问。

版权声明:本文由特网科技发布,如需转载请注明出处。

本文链接:https://www.56dr.com/mation/83148.html

分享给朋友:

“Ubuntu Debian系统安装与配置指南” 的相关文章

寻找全球网络服务器位置与端口号

国外服务器通常有特定的地址和端口号。Google的服务器地址是8.8.8.8,端口号为53;Facebook的服务器地址是216.58.217.44,端口号为80;Twitter的服务器地址是192.168.1.1,端口号为443。这些信息可以帮助你找到和使用国外网站或服务。在当今互联网时代,随着科...

电脑服务器端口的神秘世界,揭秘网络通信的秘密

电脑服务器端口是网络通信中的一个重要组成部分,它们在不同的服务之间传递数据。从传统的TCP/IP协议到最新的HTTPS、SMTP等安全协议,每种协议都有自己的端口号。这些端口号不仅决定了数据传输的方向和类型,还对系统的安全性起着关键作用。服务器端口的存在使得网络连接更加高效且可靠。在现代科技的浪潮中...

AI服务器租赁,英伟达GPU支持

AI服务器租赁提供商英伟达推出了一系列高性能计算设备和解决方案,旨在为用户在人工智能和机器学习领域提供更强大的计算能力。这些设备包括GPU(图形处理单元)和专用加速卡,能够显著提高模型训练速度和推理效率。英伟达还提供了全面的培训服务和咨询支持,帮助用户快速上手并优化他们的AI项目。深度学习与AI技术...

选择服务器租赁还是购买?

选择服务器租赁或购买取决于您的需求、预算和使用习惯。租赁通常更经济实惠,尤其是在需要短期资源时;而购买则更适合对长期稳定性有更高要求的用户。两者各有优缺点,建议在做出决策前进行充分比较和考虑。随着科技的发展,云计算逐渐成为企业IT基础设施的重要组成部分,而服务器的租赁和购买作为企业 IT 的重要决策...

如何每月支付一台服务器的费用?

租用服务器需要考虑多种因素,如操作系统、带宽、存储空间等。平均来看,一个标准的VPS服务器一个月的价格可能在20到30元人民币左右。而一年的价格则可以达到几百到几千元人民币不等。具体价格还需根据您的需求和所选服务提供商来确定。随着互联网的普及,越来越多的人开始将个人或小型企业迁移到网络上,服务器租赁...

提升网络安全与可靠性

随着技术的发展,互联网正变得更加便捷和高效。为了保护用户数据的安全,确保网站的稳定运行,许多公司都采取了各种措施来提高网络安全。我们可以期待未来网络会更加安全、可靠,为用户提供更好的服务体验。在当今数字化时代,互联网已经成为人们生活不可或缺的一部分,随着互联网的快速发展和应用范围的不断扩大,也带来了...