如何以PEM格式导出证书?

时间:2015-03-09 16:33:10

标签: ssl ldap ssl-certificate starttls

我有一个Ubuntu LDAP服务器,STARTTLS使用自签名证书(these instructions之后)。

设置CentOS客户端时(these instructions之后),authconfig-tui命令要求我提供PEM格式的证书:

│ To connect to a LDAP server with TLS       │
│ protocol enabled you need a CA certificate │
│ which signed your server's certificate.    │
│ Copy the certificate in the PEM format to  │
│ the '/etc/openldap/cacerts' directory.     │
│ Then press OK.                             │

如何以PEM格式获取证书?我发现了这些命令,但我的ubuntu系统上甚至不存在/etc/dirsrv/文件夹。

certutil -L -d /etc/dirsrv/slapd-SOMETHING
certutil -L -d /etc/dirsrv/slapd-SOMETHING -n "SOMETHING_ELSE" -a > cacert.asc

我也看到了certutil -L -d /etc/openldap/certs命令,它给了我这个错误信息(我也试过了/etc/ssl/certs):

certutil: function failed: SEC_ERROR_LEGACY_DATABASE: The certificate/key database is in an old, unsupported format.

请注意,出于显而易见的原因,我只想导出证书的公共部分,而不是私有部分(用于易于识别的SSH密钥,其中id_rsa是私有的,id_rsa.pub是公共的,我总是觉得很难知道我出口的证书是公开的还是私人的......)

1 个答案:

答案 0 :(得分:1)

如果您按照链接的说明进行操作,那么您已经获得了PEM格式的证书。从这些说明:

Create the self-signed CA certificate:

sudo certtool --generate-self-signed \
   --load-privkey /etc/ssl/private/cakey.pem \ 
   --template /etc/ssl/ca.info \
   --outfile /etc/ssl/certs/cacert.pem

证书为/etc/ssl/certs/cacert.pem,且格式为PEM格式。

  

...我只想导出证书的公共部分,而不是私有部分

证书(cacert.pem)仅包含公钥。私钥(cakey.pem)未包含在证书中。