Linux系统中自签名HTTPS证书

在 Linux 系统中,我们可以通过 OpenSSL 工具生成自签名的 HTTPS 证书,并将其配置到 Web 服务器(如 Nginx)中。以下是详细步骤:

一. 生成自签名 HTTPS 证书

  1. 安装 OpenSSL:

    首先,确保你的系统上安装了OpenSSL,这是一个强大的加密工具,用于生成和管理SSL/TLS证书。大多数Linux发行版默认已经安装了OpenSSL。

    • 对于 Ubuntu/Debian 系统:

      bash 复制代码
      sudo apt-get update
      sudo apt-get install openssl
    • 对于 CentOS/RHEL 系统:

      bash 复制代码
      sudo yum install openssl
  2. 生成私钥:

    使用OpenSSL生成一个RSA私钥。这个私钥将用于生成证书签名请求(CSR)和自签名的证书。

    • 使用以下命令生成一个 2048 位的私钥文件(例如 server.key):

      bash 复制代码
      openssl genpkey -algorithm RSA -out server.key
    • 或者使用旧版本的 OpenSSL:

      bash 复制代码
      openssl genrsa -out server.key 2048
  3. 生成证书签名请求 (CSR):

    使用私钥创建一个证书签名请求。CSR包含了你的组织信息,这些信息将被包含在最终的证书中。

    • 使用私钥生成 CSR 文件(例如 server.csr):

      bash 复制代码
      openssl req -new -key server.key -out server.csr
    • 在生成过程中,系统会提示输入一些信息,如国家、组织名称、通用名称(域名)等。

  4. 生成自签名证书:

    • 使用 CSR 和私钥生成自签名证书(例如 server.crt),有效期为 365 天:

      bash 复制代码
      openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

二. 配置 Nginx 使用自签名证书

  1. 创建 Nginx 配置文件:

    • 编辑 Nginx 的配置文件,添加以下内容:

      nginx 复制代码
      server {
          listen 443 ssl;
          server_name yourdomain.com;
      
          ssl_certificate /path/to/server.crt;
          ssl_certificate_key /path/to/server.key;
      
          location / {
              root /path/to/your/webroot;
              index index.html index.htm;
          }
      }
    • 将 yourdomain.com 替换为你的域名,/path/to/server.crt 和 /path/to/server.key 替换为证书和私钥文件的实际路径。

  2. 重启 Nginx 服务:

    • 保存配置文件后,重启 Nginx 服务以使更改生效:

      bash 复制代码
      sudo systemctl restart nginx

      或者:

      bash 复制代码
      sudo service nginx restart

三. 注意事项

  • 自签名证书在浏览器中会被视为不安全的,因为它们没有由受信任的证书颁发机构(CA)签名。因此,自签名证书通常仅用于开发环境或内部测试。
  • 如果需要在生产环境中使用 HTTPS,建议购买由受信任 CA 签名的证书。
    • 自签名证书适合内部开发和测试环境,使用方便但安全性低,用户信任度低。
    • CA 签名证书适合生产环境和面向公众的网站,安全性高,用户信任度高,但需要付费。

以下是自签名证书和 CA 签名证书的区别:

特性 自签名证书 CA 签名证书
信任机制 由证书所有者自己签发,浏览器默认不信任,需手动添加到信任列表。 由受信任的第三方 CA 签发,浏览器和客户端设备内置 CA 根证书,自动信任。
安全性 安全性较低,依赖私钥管理,容易被伪造或篡改。 安全性较高,CA 会对申请者进行身份验证,支持多种加密算法和安全标准。
使用场景 适用于内部测试环境、开发环境或小型私人网络。 适用于面向公众的网站、电子商务平台、企业级应用等。
成本 免费,无需支付 CA 费用。 通常需要付费,费用根据证书类型和有效期而定(部分 DV 证书免费)。
证书链 没有证书链,证书由自身签发。 包含证书链(根证书 → 中间证书 → 目标证书),通过证书链验证真实性。
证书有效期 用户自行设置,建议不超过 1 年。 根据 CA/B 论坛规定,DV 证书最长 90 天,OV 和 EV 证书最长 27 个月。
浏览器支持 浏览器会提示证书不受信任,可能阻止访问网站。 浏览器和客户端设备自动信任,用户可以正常访问网站,不会出现安全警告。
相关推荐
YoungStudyAI5 小时前
QA的下一个自动化阶段,可能不是再写更多脚本,而是设计测试Agent
运维·自动化
分布式存储与RustFS6 小时前
纠删码到底吃掉了多少容量:EC:4、EC:8 的利用率与容错怎么算
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
遇见小修修7 小时前
3步解决打印机0x00000709报错 ,广州深圳程序员可自行排查
运维·打印机·维修·打印机报错·打印机运维·打印机故障自查
顺顺 尼7 小时前
linux 进程信号(上)
linux·c++·算法
niuTaylor7 小时前
飞腾 FT-2000/4 Ubuntu 内存卡 / NVMe SSD 系统制作完整指南
linux·服务器·人工智能·驱动开发·单片机
傲世仙尊8 小时前
信号量环形队列与线程池起步-把临界资源拆成很多份
linux
Huangjin007_8 小时前
【Linux 系统篇(二十五)】文件(二) 系统文件I/O详解
linux·运维·服务器
微小冷9 小时前
Mermaid画甘特图
运维·markdown·甘特图·mermaid·时间图
ShineWinsu9 小时前
对于ProtoBuffer:ProtoBuffer的介绍以及安装
linux·网络·google·协议·序列化·反序列化·protobuffer
FlightYe10 小时前
视界原理之2D视频(二):视频文件里有什么
android·linux·网络·c++·ffmpeg·音视频·aac