如何在Linux系统中进行数字证书管理

来源:APP编程网作者:Ada头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何在Linux系统中进行数字证书管理》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux系统中进行数字证书管理》有用,将其分享出去将是对创作者最好的鼓励。

数字证书在Linux系统的服务部署、接口调用、安全通信等场景中应用广泛,合理管理数字证书能有效保障系统和服务的安全性。常见的数字证书格式包括PEM、DER、PKCS12等,不同场景需要使用对应格式的证书,同时需要借助openssl等工具完成各类证书操作。

Linux系统常见证书存储路径

Linux系统默认会存储可信的根证书,不同发行版的存储路径略有差异,常见路径如下:

  • Ubuntu/Debian系统:/etc/ssl/certs/ 存放可信证书,/etc/ssl/private/ 存放私钥
  • CentOS/RHEL系统:/etc/pki/tls/certs/ 存放可信证书,/etc/pki/tls/private/ 存放私钥
  • 通用路径:/usr/local/share/ca-certificates/ 可存放自定义的根证书,更新后会被系统信任

使用openssl生成自签名证书

自签名证书常用于内部测试场景,不需要向CA机构申请,可直接通过openssl生成,步骤如下:

1. 生成私钥

首先生成RSA私钥,长度为2048位,执行以下命令:

# 生成2048位RSA私钥,保存为server.key
openssl genrsa -out server.key 2048

2. 生成证书签名请求(CSR)

使用私钥生成CSR文件,需要填写证书的相关信息,命令如下:

# 生成CSR文件,过程中需要填写国家、省份、组织等信息
openssl req -new -key server.key -out server.csr

3. 生成自签名证书

用私钥和CSR文件生成有效期为365天的自签名证书:

# 生成有效期365天的自签名PEM格式证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

查看数字证书信息

可以通过openssl命令查看不同格式证书的具体内容,包括颁发者、有效期、公钥信息等:

查看PEM格式证书

# 查看PEM格式证书的详细信息
openssl x509 -in server.crt -noout -text

查看PKCS12格式证书

PKCS12格式通常包含证书和私钥,查看时需要输入导出时设置的密码:

# 查看p12格式证书内容
openssl pkcs12 -in server.p12 -info

数字证书格式转换

不同服务对证书格式的要求不同,常需要进行格式转换,以下是常见转换场景:

转换场景执行命令
PEM转DERopenssl x509 -in server.crt -outform der -out server.der
DER转PEMopenssl x509 -in server.der -inform der -outform pem -out server.crt
PEM转PKCS12(包含私钥)openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12
PKCS12转PEM(分离证书和私钥)openssl pkcs12 -in server.p12 -out server_all.pem -nodes

验证数字证书有效性

验证证书的有效性包括检查证书是否过期、是否被可信CA签发、证书链是否完整等:

验证本地证书有效期

# 检查证书的有效期,输出起始和结束时间
openssl x509 -in server.crt -noout -dates

验证证书链是否完整

如果证书是由中间CA签发的,需要携带完整的证书链进行验证,命令如下:

# 使用CA根证书验证目标证书,chain.pem为完整的证书链
openssl verify -CAfile chain.pem server.crt

证书更新与信任配置

当证书过期或需要更换时,需要更新证书并配置系统信任:

  • 替换原有证书文件,确保私钥权限设置为600,证书权限设置为644
  • 如果是自定义根证书,放入/usr/local/share/ca-certificates/目录后,执行update-ca-certificates命令更新系统信任库
  • 重启使用证书的服务,让新证书生效
注意:私钥文件需要严格保密,不要将私钥泄露给无关人员,也不要将私钥放在公共可访问的目录下。

常见问题排查

当服务出现证书相关报错时,可以按照以下步骤排查:

  • 检查证书路径是否正确,服务是否有权限读取证书和私钥文件
  • 检查证书和私钥是否匹配,可通过以下命令验证:
    # 对比证书和私钥的公钥哈希,一致则匹配
    openssl x509 -in server.crt -noout -modulus | md5sum
    openssl rsa -in server.key -noout -modulus | md5sum
    
  • 检查证书是否过期,是否被系统信任

Linux数字证书管理openssl证书格式转换证书验证修改时间:2026-06-12 19:33:56

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。