在CentOS 6中安装根证书


9

我知道已经有人问过这个问题,但是尽管进行了许多小时的研究,我仍然找不到可行的解决方案。我试图在服务器中安装根证书,以便内部服务可以使用SSL相互绑定。

关于新的根CA应该知道些什么:

  1. Apache httpd和PHP
  2. OpenLDAP客户端
  3. Node.js

对于Apache,我需要一个PHP应用程序来了解根证书,因此,如果站点连接到另一个SSL网站(由同一CA签名),则它可以正常工作,并且不会抱怨自签名证书。

对于OpenLDAP,我认为它与PHP相同,它使用的模块相当老,它是Net_LDAP2,与PEAR一起安装。我尝试编辑本地openldap配置,但似乎系统未使用它。

最后一个Node.js,我用于仿制。node.js服务器必须信任CA才能建立良好的SSL连接。

我尝试将证书添加到/etc/pki/tls/certs/ca-bundle.crt中,但收效甚微。

虽然httpd没有看到根CA,但我设法使它与其他服务一起使用,例如tomcat和389。

谢谢您的支持。


1
这几乎需要三个独立的问题。我可能是错的,也许有一种系统范围的方法可以信任所有这些服务的CA证书。如果没有系统范围的方法,那么为了获得有用的答案,可能需要将其分解为三个独立的问题。
Zoredache

您到底尝试了什么?这是很容易研究的东西,因为它很常见。如果我们知道为什么你有麻烦,我们也许能给出更好的答案比SSLCACertificateFile/etc/httpd/conf.d/ssl.confTLS_CACERT/etc/openldap/ldap.conf(OpenLDAP客户),TLSCACertificateFile/etc/openldap/slapd.conf(OpenLDAP服务器)等。
阿伦科普利

Apache httpd是我发布此问题的主要原因。我认为它读取系统范围的证书。但是编辑它们不起作用。
约翰·怀特

Answers:


7

在我的RHEL 6框上,man 8 update-ca-trust手册页对如何/应该管理系统范围的CA证书和相关信任进行了详尽的解释。

如上面的注释所示,配置通常不是特定于应用程序的。


2
CentOS没有这样的手册。我相信这两个系统具有不同的管理工具。
约翰·怀特

它们大致相同,但是细微的差别总是让我失望。这是ca证书rpm的一部分。手册页的副本,可以发现这里
HBruijn

我的CentOS 6.5的手册页中有update-ca-trust。@ Mc120k您安装了ca-certificates-2013吗?
8None1'6

1

我写了一些命令行,以便新手可以更轻松地使用SSL:

导航到PKI文件夹

$ cd /etc/pki/tls/certs/
 

验证(硬)链接和备份证书

$ cp ca-bundle.crt /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem.bak
$ cp ca-bundle.trust.crt /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt.bak
 

将CA链上传到CentOS

$ scp <cachain> root@sydapp28:/tmp 
 

通过SSH(Putty?)或本地连接到CentOS

$ ssh -C root@sydapp28
 

IF PKCS12 CAChain:“将内部CA链证书转换为PEM格式并删除标头”:

$ cd /tmp ; openssl pkcs12 -nodes -in <cachain.pfx.p12> | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > cachain.pem
 

将内部CA附加到CentOS

$ cat /tmp/cachain.pem >> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
$ cat /tmp/cachain.pem >> /etc/pki/ca-trust/extracted/pem/ca-bundle.trust.crt
$ reboot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.