在UNIX / Linux文件系统中,SSL证书和相关私钥的位置是否有任何标准或惯例?
谢谢。
对于系统范围的使用,OpenSSL应该为你提供/etc/ssl/certs
和/etc/ssl/private
。 后者将被限制在700
root:root
。
如果您的应用程序没有从root
执行初始privsep,那么它可能适合您在具有相关受限制的所有权和权限的应用程序的本地位置find它们。
这是Go寻找公共根证书的地方 :
"/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc. "/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL 6 "/etc/ssl/ca-bundle.pem", // OpenSUSE "/etc/pki/tls/cacert.pem", // OpenELEC "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem", // CentOS/RHEL 7
另外 :
"/etc/ssl/certs", // SLES10/SLES11, https://golang.org/issue/12139 "/system/etc/security/cacerts", // Android "/usr/local/share/certs", // FreeBSD "/etc/pki/tls/certs", // Fedora/RHEL "/etc/openssl/certs", // NetBSD
这将从分配到分配有所不同。 例如,在Amazon Linux实例(基于RHEL 5.x和RHEL6的一部分,并与CentOS兼容)中,证书存储在/etc/pki/tls/certs
,密钥存储在/etc/pki/tls/private
。 CA证书有自己的目录, /etc/pki/CA/certs
和/etc/pki/CA/private
。 对于任何给定的发行版,尤其是在托pipe服务器上,我build议遵循已有的目录(和权限)结构(如果有)。
如果您正在查找Tomcat实例使用的证书
keystoreFile
属性。 看起来像
<Connector protocol="org.apache.coyote.http11.Http11Protocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="${user.home}/.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS" />