插件窝 干货文章 如何在Linux系统中进行数字证书管理

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

证书 OpenSSL certificate 密钥 540    来源:    2025-04-18

Linux系统中数字证书管理指南

基本概念

数字证书是用于验证身份和加密通信的重要工具,在Linux系统中主要通过OpenSSL等工具进行管理。主要涉及以下几种文件类型: - .pem - Base64编码的证书 - .crt - 证书文件 - .key - 私钥文件 - .csr - 证书签名请求文件 - .pfx/.p12 - PKCS#12格式的证书和私钥包

常用工具

1. OpenSSL

OpenSSL是Linux上最常用的证书管理工具,几乎所有的证书操作都可以通过它完成。

安装OpenSSL

# Debian/Ubuntu
sudo apt-get install openssl

# RHEL/CentOS
sudo yum install openssl

2. keytool (Java密钥库管理)

# 安装(通常随JDK一起安装)
sudo apt-get install default-jdk

证书管理操作

1. 生成私钥

# 生成RSA私钥(2048位)
openssl genrsa -out private.key 2048

# 生成带密码保护的私钥
openssl genrsa -des3 -out private.key 2048

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

openssl req -new -key private.key -out request.csr

系统会提示输入证书信息(国家、组织、通用名等)。

3. 自签名证书

openssl req -x509 -new -nodes -key private.key -sha256 -days 365 -out certificate.crt

4. 查看证书内容

# 查看CSR内容
openssl req -in request.csr -noout -text

# 查看证书内容
openssl x509 -in certificate.crt -noout -text

# 查看私钥信息
openssl rsa -in private.key -noout -text

5. 验证证书

openssl verify -CAfile ca.crt certificate.crt

6. 证书格式转换

# PEM转DER
openssl x509 -in certificate.pem -outform der -out certificate.der

# DER转PEM
openssl x509 -inform der -in certificate.der -out certificate.pem

# PEM转PKCS#12
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile CACert.crt

7. 检查证书有效期

openssl x509 -in certificate.crt -noout -dates

证书存储位置

Linux系统通常将证书存储在以下位置:

  • /etc/ssl/certs - 系统信任的CA证书
  • /etc/ssl/private - 私钥文件(通常权限严格限制)
  • /usr/local/share/ca-certificates - 用户安装的CA证书
  • ~/.pki - 用户个人的证书存储

更新系统信任的证书

# Debian/Ubuntu
sudo update-ca-certificates

# RHEL/CentOS
sudo update-ca-trust

使用keytool管理Java密钥库

# 列出密钥库内容
keytool -list -keystore keystore.jks

# 导入证书到密钥库
keytool -importcert -alias mycert -file certificate.crt -keystore keystore.jks

# 生成密钥对
keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore keystore.jks

安全最佳实践

  1. 私钥文件权限应设置为600

    chmod 600 private.key
    
  2. 定期轮换证书(通常1-2年)

  3. 使用强加密算法(推荐SHA-256或更高)

  4. 避免在版本控制系统中存储私钥

  5. 考虑使用硬件安全模块(HSM)存储高敏感度私钥

  6. 监控证书到期时间,设置自动提醒

通过以上方法,您可以在Linux系统中有效地管理数字证书,确保系统通信的安全性和可靠性。