如何安装根证书?


223

谁能指出我关于在ubuntu 10或11上安装根证书的好的教程?

我已经收到了一个.crt文件。我收集需要在该目录中创建目录/usr/share/ca-certificates/newdomain.org并将其放置.crt 在该目录中的信息。除此之外,我不确定如何进行。


19
如果有人使用cer文件而不是crt登陆此处,那么他们是同一回事(只是扩展名不同)。您应该能够遵循这些答案,而只需替换文件名即可。
奥利(Oli)

顺便说一句:为了方便地从命令行获取CA证书,请在serverfault上查看此处
Frank Nocke '18年

Answers:


297

安装根/ CA证书

给定一个CA证书文件foo.crt,请按照以下步骤在Ubuntu上安装它:

  1. 在以下目录中为其他CA证书创建目录/usr/share/ca-certificates

    sudo mkdir /usr/share/ca-certificates/extra
    
  2. 将CA .crt文件复制到以下目录:

    sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt
    
  3. 让Ubuntu上添加.crt文件的相对路径/usr/share/ca-certificates/etc/ca-certificates.conf

    sudo dpkg-reconfigure ca-certificates
    

    要以非交互方式执行此操作,请运行:

    sudo update-ca-certificates
    

如果是.pemUbuntu 上的文件,则必须首先将其转换为.crt文件:

openssl x509 -in foo.pem -inform PEM -out foo.crt

54
如何使用/usr/local/share/ca-certificates(local!)而不是使用系统软件包管理托管的Directoy?
gertvdijk 2014年

6
请注意,Firefox(也许还有其他一些软件)不使用系统范围的证书,而是使用自己的证书存储区:askubuntu.com/a/248326/79344
阿米尔·阿里·阿克巴里

12
请注意,该文件必须为PEM格式,并具有“ .crt”扩展名。
安东

2
sudo dpkg-reconfigure ca-certificates谢谢,另一个sudo update-ca-certificates --fresh在16.10上不起作用。
antivirtel

7
该命令openssl x509 -in foo.pem -inform PEM -out foo.crt将PEM文件复制到PEM文件。通过重命名可以更轻松地完成此操作。
玛丽安

190

给定CA证书文件'foo.crt',请按照以下步骤在Ubuntu上安装它:

首先,将您的CA复制到dir /usr/local/share/ca-certificates/

sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

然后,更新CA商店

sudo update-ca-certificates

就这样。您应该获得以下输出:

Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
Adding debian:foo.pem
done.
done.

无需编辑文件。到您的CA的链接会自动创建。

请注意,证书文件名必须以结尾.crt,否则update-ca-certificates脚本将无法使用。

此过程在新版本中也适用:manuals


1
这似乎在可信赖的版本14.04中不起作用
mcantsin 2014年

25
请注意,与添加到/ usr / share / ca-certificates不同,这似乎仅在它们直接位于/ usr / local / share / ca-certificates而不是子目录中时才起作用。+1用于使用本地文件夹而不是系统文件夹!
Toby J

2
README.Debian中对此进行了说明。
pevik

1
@ Sparky1,这应该是公认的答案。
德鲁·查平

1
@FranklinYu谢谢:) Debian从Alioth搬到了Salsa,这也可以工作:salsa.debian.org/debian/ca-certificates/raw/master/debian/…,但是sources.debian.org更好。
pevik

7

在Ubuntu上安装证书颁发机构

我已经在Ubuntu 14.04上对此进行了测试。

这是我的解决方案,我看了很长时间,试图弄清楚如何使它起作用。

  1. 从浏览器中提取.cer。我使用IE 11。
    • 设置-> Internet选项->中级证书颁发机构
    • 选择要导出的证书颁发机构(certutil -config - -ping如果您在公司代理后面,则将显示正在使用的证书颁发机构)
    • 导出->选择要使用的格式:DER编码的.cer
  2. 以某种方式将.cer文件获取到Ubuntu
  3. 转换为.crt openssl x509 -inform DER -in certificate.cer -out certificate.crt
  4. 制作额外的目录 sudo mkdir /usr/share/ca-certificates/extra
  5. 复制证书 sudo cp certificate.crt /usr/share/ca-certificates/extra/certificate.crt
  6. sudo update-ca-certificates
  7. 如果没有,那你就要做我所做的,去 sudo nano /etc/ca-certificates.conf
  8. 向下滚动并找到您的.cer,然后!从文件名(update-ca-certificates doc)前面删除-如果找不到运行的证书dpkg-reconfigure ca-certificates
  9. sudo update-ca-certificates
  10. 您可能需要单独信任来自Firefox,Chrome等的CA。我需要将其与Docker配合使用,因此在完成这些步骤后,便可以与Docker配合使用。

1
在16.04中工作吗?
endolith '16

@endolith在16.04为我工作。
Shubham

4

使用Ubuntu 18.04时,其他答案对我不起作用。/etc/ssl/certs/ca-certificates.crt使用以下命令将证书cert附加到:

cat YOUR_CERT_HERE.crt >> /etc/ssl/certs/ca-certificates.crt 

1
在发现这个问题之前,我花了2个小时来弄弄导入命令。完善!
beirtipol

命令错误,最后一个命令s丢失:cat YOUR_CERT_HERE.crt >> /etc/ssl/certs/ca-certificates.crt 。感谢您的解决方案。
SommerEngineering

注意:这是临时解决方案,因为添加的证书将在运行后被删除update-ca-certificates
kenorb

3

如果需要,可在网络本地的Web服务器上拥有(根/ CA)证书。

  • 使用Firefox浏览到它。
  • 打开证书,并告诉Firefox将其添加为例外。
  • Firefox将询问您是否要信任此证书来标识网站,电子邮件用户或软件发布者。
  • 请享用!

更新:有必要检查它是否在Ubuntu 11上有效。


5
没有Firefox自己的证书容器?如果有人以这种方式添加证书,那么只有Firefox可以使用它,不是吗?
Aiyion.Prime

这根本不起作用,您仍然必须将其添加到操作系统的全局证书容器中,否则它将仅位于Firefox容器中。
arc_lupus

1

这里

安装证书

您可以通过在终端提示符下运行以下命令来安装密钥文件example.key和证书文件example.crt,或由CA颁发的证书文件:

sudo cp example.crt /etc/ssl/certs
sudo cp example.key /etc/ssl/private

现在,只需配置任何具有使用公钥加密功能的应用程序即可使用证书和密钥文件。例如,Apache可以提供HTTPS,Dovecot可以提供IMAPS和POP3S等。


应该仔细阅读...看来这不是针对根证书的。不过,我链接到的页面包含有关可能有用的根证书的信息。
2011年

1
我没有公共密钥和私有密钥,我只有一个.crt,所以不幸的是,这些说明似乎并不适用。
Sparky1 2011年

0

现在,在FireFox中添加根CA证书非常容易。只需打开首选项,转到“隐私和安全”,向下滚动到“证书”,然后单击“查看证书...”。在这里您可以单击“导入证书”。指向您的根CA(.pem),然后单击“确定”。那是所有人。


0

简单的步骤如下:

  1. 安装CA证书,以允许基于SSL的应用程序检查SSL连接的真实性:

    sudo apt-get install ca-certificates
    
  2. 将证书文件(crt.cer)复制到/usr/local/share/ca-certificates/文件夹中,例如:

    sudo cp file.crt /usr/local/share/ca-certificates/
    

    有关PEM文件,请参阅:将.pem转换为.crt和.key

    (可选)如果使用Charles代理,此命令可以工作:

    curl -L chls.pro/ssl | sudo tee /usr/local/share/ca-certificates/charles.crt
    
  3. 更新证书:

    sudo update-ca-certificates
    

    该命令将更新/etc/ssl/certs目录以保存SSL证书并生成ca-certificates.crt文件(证书的串联单文件列表)。

    注意:不要手动添加证书(如建议在这里),因为它们不是持久的,将被删除。

注意:如果您以身份运行root,则可以sudo从上述命令中删除。


0

之间澄清update-ca-certificatesdpkg-reconfigure ca-certificates为什么一个作品和其他没有!

update-ca-certificatessudo update-ca-certificates /etc/ca-certificates.conf在更新后才有效

/etc/ca-certificate.conf 仅在您运行后 dpkg-reconfigure ca-certificates更新,该更新会更新要导入的证书名称/etc/ca-certificates.conf

这在/etc/ca-certificates.conf文件的标题中说明:

# This file lists certificates that you wish to use or to ignore to be
# installed in /etc/ssl/certs.
# update-ca-certificates(8) will update /etc/ssl/certs by reading this file.
#
# This is autogenerated by dpkg-reconfigure ca-certificates.  <=======
# Certificates should be installed under /usr/share/ca-certificates
# and files with extension '.crt' is recognized as available certs.
#
# line begins with # is comment.
# line begins with ! is certificate filename to be deselected.
#
mozilla/ACCVRAIZ1.crt
mozilla/AC_RAIZ_FNMT-RCM.crt
mozilla/Actalis_Authentication_Root_CA.crt
mozilla/AddTrust_External_Root.crt
...

如您所见,格式/etc/ca-certificates.conf<folder name>/<.crt name>

因此,为了使用update-ca-certificatessudo update-ca-certificates您可以执行以下操作来导入.crt:

  1. 在/ usr / share / ca-certificates中为其他CA证书创建目录:

    sudo mkdir /usr/share/ca-certificates/extra

  2. 将.crt文件复制到以下目录:

    sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt

  3. 附加一行以/etc/ca-certificates.conf使用<folder name>/<.crt name>

    echo "extra/foo.crt" >> /etc/ca-certificate.conf

  4. 更新证书的非交互使用sudo更新CA证书

    sudo update-ca-certificates

    ... Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.

玩得开心!

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.