数字证书是用于验证身份和加密通信的重要工具,在Linux系统中主要通过OpenSSL等工具进行管理。主要涉及以下几种文件类型:
- .pem
- Base64编码的证书
- .crt
- 证书文件
- .key
- 私钥文件
- .csr
- 证书签名请求文件
- .pfx
/.p12
- PKCS#12格式的证书和私钥包
OpenSSL是Linux上最常用的证书管理工具,几乎所有的证书操作都可以通过它完成。
# Debian/Ubuntu
sudo apt-get install openssl
# RHEL/CentOS
sudo yum install openssl
# 安装(通常随JDK一起安装)
sudo apt-get install default-jdk
# 生成RSA私钥(2048位)
openssl genrsa -out private.key 2048
# 生成带密码保护的私钥
openssl genrsa -des3 -out private.key 2048
openssl req -new -key private.key -out request.csr
系统会提示输入证书信息(国家、组织、通用名等)。
openssl req -x509 -new -nodes -key private.key -sha256 -days 365 -out certificate.crt
# 查看CSR内容
openssl req -in request.csr -noout -text
# 查看证书内容
openssl x509 -in certificate.crt -noout -text
# 查看私钥信息
openssl rsa -in private.key -noout -text
openssl verify -CAfile ca.crt certificate.crt
# 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
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 -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
私钥文件权限应设置为600
chmod 600 private.key
定期轮换证书(通常1-2年)
使用强加密算法(推荐SHA-256或更高)
避免在版本控制系统中存储私钥
考虑使用硬件安全模块(HSM)存储高敏感度私钥
监控证书到期时间,设置自动提醒
通过以上方法,您可以在Linux系统中有效地管理数字证书,确保系统通信的安全性和可靠性。