![通过 jks 文件配置 dovecot 和 postfix ssl 设置](https://linux22.com/image/662084/%E9%80%9A%E8%BF%87%20jks%20%E6%96%87%E4%BB%B6%E9%85%8D%E7%BD%AE%20dovecot%20%E5%92%8C%20postfix%20ssl%20%E8%AE%BE%E7%BD%AE.png)
我有 CA JKS(Java 密钥库)文件,其中 CA 包已完全添加到其中,并且我们在 Java 方面没有遇到任何问题。
现在我该如何从这个 JKS 文件中导出/操作设置 dovecot 和 postfix ssl 设置 (使用 ca) 所需的密钥和资料?在 CA 管理部分,我会有 pem (用于我的所有证书、ca 和 root)、crt 和 p7b 文件,但仍然不知道如何配置。
答案1
Postfix 和 Dovecot 使用的证书密钥对与 Apache 证书密钥对的格式相同。因此,你可以从这个帖子中窃取解决方案:将 Java 密钥库转换为 PEM 格式。
将其转换为pkcs12格式
keytool -importkeystore -srckeystore foo.jks \
-destkeystore foo.p12 \
-srcstoretype jks \
-deststoretype pkcs12
要提取证书:
openssl pkcs12 -in foo.p12 -clcerts -nokeys -out servercert.pem
要提取私钥:
umask 0077
openssl pkcs12 -in foo.p12 -nocerts -nodes -out serverkey.pem
umask 0022
最后一步是配置 postfix/dovecot 以使用该对。互联网上有大量配置教程。
主要参数后缀
# Server side TLS
smtpd_use_tls = yes
# private key file
smtpd_tls_key_file = /path/to/serverkey.pem
# key you generated at cacert.org
smtpd_tls_cert_file = /path/to/servercert.pem
主要参数鸽舍
ssl = yes
# Preferred permissions: root:root 0444
ssl_cert = </path/to/servercert.pem
# Preferred permissions: root:root 0400
ssl_key = </path/to/serverkey.pem