Redhat中替代PowerShell New-SelfSignedCertificate的等效命令及证书配置
在Red Hat Linux上创建用于Azure AD认证的自签名证书
1. 使用OpenSSL生成自签名证书
Linux上最常用的证书生成工具是openssl,执行以下命令即可生成符合需求的自签名证书(对应Windows系统中New-SelfSignedCertificate的参数逻辑):
# 生成自签名证书和可导出的未加密私钥 openssl req -x509 -newkey rsa:2048 -keyout mycert.key -out mycert.crt -days 365 -subj "/CN=MyCertificate" -nodes
参数说明:
-x509:指定生成自签名证书-newkey rsa:2048:创建2048位RSA密钥对-keyout:指定私钥文件的输出路径-out:指定证书文件的输出路径-days 365:设置证书有效期为1年-subj "/CN=MyCertificate":定义证书的主体名称(对应Windows命令中的Subject参数)-nodes:让私钥不加密,确保可导出使用(对应KeyExportPolicy Exportable)
2. 转换为PFX格式(用于Azure应用注册上传)
Azure应用注册支持上传PFX格式的证书,执行以下命令将生成的.crt和.key文件合并为PFX:
openssl pkcs12 -export -out mycert.pfx -inkey mycert.key -in mycert.crt
执行后会提示设置PFX文件的密码,务必记住该密码,后续上传证书到Azure时需要用到。
3. Linux上的证书存储位置
Linux没有Windows那样的统一证书存储库,推荐按以下场景存放:
- 系统级共享证书:将
.crt文件放到/etc/pki/tls/certs/,.key文件放到/etc/pki/tls/private/,并设置私钥权限为chmod 600 /etc/pki/tls/private/mycert.key(仅root可读写,保证安全) - 应用专用证书:如果仅单个应用使用,可将证书文件放到应用专属目录(如
/opt/your-app/certs/),同样要严格限制私钥的访问权限
4. 配置Azure应用注册与Key Vault访问
- 登录Azure门户,进入目标应用注册,选择证书和密码 > 上传证书,选择生成的
mycert.pfx文件,输入设置的密码后保存 - 进入目标Key Vault,选择访问策略 > 添加访问策略,为应用注册分配所需的密钥权限(如
Get、List),完成后保存
5. 应用中使用证书认证
以Python为例,通过Azure SDK加载证书完成认证:
from azure.identity import CertificateCredential from azure.keyvault.keys import KeyClient credential = CertificateCredential( tenant_id="你的租户ID", client_id="你的应用客户端ID", certificate_path="/path/to/mycert.pfx", certificate_password="你的PFX密码" ) key_client = KeyClient(vault_url="https://你的密钥库名称.vault.azure.net/", credential=credential) # 后续可调用key_client的方法访问密钥
内容的提问来源于stack exchange,提问作者omena kutchena
相关产品推荐
相关产品推荐

