SSL证书和关联的私钥在UNIX / Linux文件系统上的位置是否存在任何标准或约定?

#1 楼

对于系统范围的使用,OpenSSL应该为您提供/etc/ssl/certs/etc/ssl/private。如果您的应用程序未从700执行初始privsep,则可能适合您将它们定位在应用程序本地且相关所有权受到限制的位置,并且您可以将它们限制在root:rootroot之间。

权限。

评论


这在某个地方标准化吗?文件系统层次结构标准不包含它。

– cweiske
2013年12月4日20:50

@cweiske这似乎是历史悠久的OpenSSL约定,尚未正式标准化,在我看来这是一个非常笨拙的约定。我最早的跟踪信息是以下版本:rpm.pbone.net/index.php3/stat/4/idpl/38501/dir/redhat_other/com / ...

– Kubanczyk
2015年4月2日在21:20



值得注意的是,这只是基于Debian的发行版。

–约书亚·格里菲思(Joshua Griffiths)
15年9月16日在8:23

我也可以在这里存储网站的SSL证书(例如,让我们加密或Cloudflare)吗?谢谢!

–Vladyslav Turak
18年1月30日在18:38

据我所知,Arch和CentOS还在/ etc / ssl / certs中存储ca证书

–theferrit32
19年2月15日在4:58

#2 楼

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/cert.pem",                                 // Alpine Linux


另外:

"/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
"/var/ssl/certs",               // AIX


#3 楼

这将因发行而异。例如,在Amazon Linux实例(基于RHEL 5.x和RHEL6的某些部分,并与CentOS兼容)上,证书存储在/etc/pki/tls/certs中,而密钥存储在/etc/pki/tls/private中。 CA证书具有自己的目录/etc/pki/CA/certs/etc/pki/CA/private。对于任何给定的发行版,尤其是在托管服务器上,如果存在可用的目录(和权限)结构,我建议遵循该目录结构。

评论


同样适用于CentOS7,谢谢。

–雅各布·埃文斯(Jacob Evans)
17年1月13日在15:42

#4 楼

Ubuntu使用/etc/ssl/certs。它还具有命令update-ca-certificates,该命令将从/usr/local/share/ca-certificates安装证书。

,因此似乎建议在/usr/local/share/ca-certificates中安装自定义证书并运行update-ca-certificates

http:// manpages。 ubuntu.com/manpages/latest/man8/update-ca-certificates.8.html

评论


/ etc / ssl / certs用于根证书。那不是存储服务器证书的地方。

–chmike
20-10-23在12:39

#5 楼

如果要查找Tomcat实例使用的证书


打开server.xml文件
搜索SSL / TLS连接器
请参阅包含以下内容的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" />