avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 Linux 自签证书SSL
文章

Linux 自签证书SSL

发表于 2024-12-9 更新于 2024-12- 9
作者 jepwei
8~10 分钟 阅读

前言

本文档介绍如何在 CentOS 7 系统上使用 OpenSSL 工具生成和配置 HTTPS 自签名证书。请注意,本教程仅适用于测试和开发环境,生产环境建议使用受信任的 CA 机构颁发的证书。

环境准备

  • 操作系统:CentOS 7
  • 所需工具:OpenSSL、Apache HTTP Server (httpd)
  • 系统权限:root 或具有 sudo 权限的用户

具体步骤

1. 安装 OpenSSL

sudo yum install -y openssl

2. 生成证书和私钥

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/example.key \
-out /etc/pki/tls/certs/example.crt

参数说明:

  • -x509: 生成自签名证书
  • -nodes: 不加密私钥文件
  • -days 365: 证书有效期为一年
  • -newkey rsa:2048: 生成 2048 位的 RSA 密钥
  • -keyout: 指定私钥输出路径
  • -out: 指定证书输出路径

生成证书时需要填写以下信息:

Country Name (2 letter code) [XX]:CN
State or Province Name:Beijing
Locality Name:Beijing
Organization Name:Example Company
Organizational Unit Name:IT Department
Common Name:example.com
Email Address:admin@example.com

3. 配置 Apache HTTP Server

  1. 确保已安装 mod_ssl 模块:
sudo yum install -y mod_ssl
  1. 编辑 SSL 配置文件:
sudo vi /etc/httpd/conf.d/ssl.conf
  1. 修改以下配置项:
SSLCertificateFile /etc/pki/tls/certs/example.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.key

# 添加以下配置以增强安全性
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLHonorCipherOrder on

4. 设置证书文件权限

sudo chmod 600 /etc/pki/tls/private/example.key
sudo chmod 644 /etc/pki/tls/certs/example.crt

5. 重启 Apache 服务

sudo systemctl restart httpd

6. 验证配置

  1. 检查服务状态:
sudo systemctl status httpd
  1. 检查端口监听:
sudo netstat -tlpn | grep httpd

注意事项

  1. 安全性考虑:

    • 确保私钥文件权限设置正确,防止未授权访问
    • 定期更新证书和密钥
    • 生产环境建议使用受信任的 CA 证书
  2. 常见问题:

    • 如遇到 SELinux 限制,需要配置相应的安全上下文
    • 确保防火墙放行 443 端口
  3. 维护建议:

    • 设置证书过期提醒
    • 保持系统和相关软件包更新
    • 定期检查日志文件

文件路径说明

  • 私钥位置:/etc/pki/tls/private/example.key
  • 证书位置:/etc/pki/tls/certs/example.crt
  • Apache SSL 配置:/etc/httpd/conf.d/ssl.conf

相关命令参考

# 查看证书信息
openssl x509 -in /etc/pki/tls/certs/example.crt -text -noout

# 查看证书有效期
openssl x509 -in /etc/pki/tls/certs/example.crt -noout -dates

# 测试 SSL 配置
openssl s_client -connect example.com:443 -tls1_2

对原文的主要改进:

  1. 增加了文档结构和层级
  2. 添加了环境准备说明
  3. 补充了详细的参数说明
  4. 增加了安全性配置
  5. 添加了权限设置步骤
  6. 补充了验证和故障排查方法
  7. 加入了维护建议
  8. 使用示例域名和邮箱替换了可能的真实信息
  9. 规范了命令格式和注释
Linux
Nginx Linux
许可协议: 
分享

相关文章

7月 16, 2025

ubuntu 设置时间显示为24小时制

对ubuntu默认的时间显示格式不太满意,查阅了相关资料进行修改为24小时制度,特此记录和分享给需要设置的网友 查看当前的timezone root@jumpserver:~# timedatectl Local time: Sat 2024-03-23 12:45:5

6月 10, 2025

KVM 虚拟机创建模板

查看--os-type支持的参数 osinfo-query os # 列出所有已知操作系统 win7 virt-install --name=win7_zpcl_ip --vcpu=8,sockets=1,cores=8,threads=1 --ram=16384 --disk path=/home

1月 15, 2025

cpu 内存占用脚本

本文介绍了两个版本的Linux压力测试脚本,分别用于CPU和内存的压力测试。CPU压力测试脚本通过无限循环创建指定数量的进程以占用CPU资源;内存压力测试脚本则通过创建临时内存块来模拟内存占用,支持指定大小和停止运行。用户需根据用法说明参数执行脚本。该文档适合需要进行性能测试的Linux用户。

下一篇

MySQL 主从复制配置完整指南

上一篇

FRP 内网穿透配置

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy