Linux系统配置HTTPS

在 Linux 系统上配置 HTTPS 需要几个步骤,包括获取 SSL/TLS 证书、配置 Web 服务器(如 Apache、Nginx)以及确保服务器支持 HTTPS 协议。这里以常见的 Nginx Web 服务器为例,介绍如何配置 HTTPS。

配置 HTTPS 的步骤:

1. 获取 SSL/TLS 证书

你可以通过以下方式获取 SSL/TLS 证书:

  • 使用自签名证书(适用于开发或内部测试环境)

  • 从受信任的证书颁发机构 (CA) 获取证书(适用于生产环境)

  • 使用 Let's Encrypt 免费获取证书

1.1 生成自签名证书(适合测试环境)

在 Linux 系统上,可以使用 openssl 来生成自签名证书。

复制代码
# 创建一个私钥和证书签名请求 (CSR)
openssl req -new -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.csr
​
# 使用私钥签署自签名证书
openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt

此命令生成了 mydomain.key(私钥)和 mydomain.crt(自签名证书)。在实际配置时,你需要提供证书和私钥的路径。

1.2 从 Let's Encrypt 获取免费证书(推荐用于生产)

Let's Encrypt 提供免费 SSL 证书,可以通过工具 Certbot 获取和自动配置证书。

  1. 安装 Certbot
复制代码
# Ubuntu / Debian 系统
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
  1. 获取证书
复制代码
# 使用 Certbot 为你的域名获取证书,并自动配置 Nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Certbot 将自动为你生成证书,并修改 Nginx 配置文件以启用 HTTPS。

2. 配置 Nginx
2.1 配置 HTTPS 虚拟主机

编辑 Nginx 配置文件(通常位于 /etc/nginx/sites-available/default 或 /etc/nginx/nginx.conf),并添加如下配置:

复制代码
server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;
​
    ssl_certificate /etc/ssl/certs/mydomain.crt;
    ssl_certificate_key /etc/ssl/private/mydomain.key;
​
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
​
    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}
​
# 强制 HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
​
    return 301 https://$host$request_uri;
}
  • ssl_certificate 和 ssl_certificate_key 指定 SSL 证书和私钥的路径。

  • ssl_protocols 和 ssl_ciphers 确保使用安全的加密协议和加密套件。

  • 第二个 server 块用于将 HTTP 请求重定向到 HTTPS。

2.2 验证 Nginx 配置

编辑完成后,验证 Nginx 配置是否正确:

复制代码
sudo nginx -t

如果配置正确,重启 Nginx 服务:

复制代码
sudo systemctl restart nginx
3. 测试 HTTPS 配置

通过浏览器访问 https://yourdomain.com,确保 HTTPS 配置成功。如果你使用了自签名证书,浏览器可能会警告该证书不受信任。

4. 自动续期(Let's Encrypt 证书)

Let's Encrypt 的证书有效期为 90 天。你可以通过以下命令手动续期证书:

复制代码
sudo certbot renew

通常,Certbot 会自动配置 cron 任务或系统计时器来自动续期证书。

总结

配置 HTTPS 涉及获取 SSL/TLS 证书并修改 Web 服务器配置文件,以确保服务器使用加密的 HTTPS 协议进行通信。使用 Let's Encrypt 是配置生产环境中 HTTPS 的简单且免费的解决方案,而自签名证书则适用于开发或测试环境。

相关推荐
2035去旅行7 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希1237 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡8 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
且从容.11 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道12 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.15 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落16 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨16 小时前
WSL2的安装与使用
linux·wsl
微小的鱼16 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng17 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器