谁能指出我有关在Ubuntu上安装根证书的好教程?

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

评论

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

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

如果有9个不同的答案,是否没有UX问题? Ubuntu是否有UserVoice?

#1 楼

安装根/ CA证书

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



创建目录/usr/share/ca-certificates中的其他CA证书:

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



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

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



让Ubuntu将.crt相对于/usr/share/ca-certificates的文件路径添加到/etc/ca-certificates.conf中:

sudo dpkg-reconfigure ca-certificates


要非交互地执行此操作,请运行:

sudo update-ca-certificates



如果在Ubuntu上使用.pem文件,则必须首先将其转换为.crt文件:

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


评论


如何使用/ usr / local / share / ca-certificates(本地!)而不使用系统软件包管理托管的Directoy?

– Gertvdijk
2014年3月31日13:03

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

–阿米尔·阿里·阿克巴里(Amir Ali Akbari)
2015年6月6日在17:51

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

–安东
16年5月5日在7:07

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

–玛丽安
17年7月26日在17:22

PEM和crt是无关的两件事。 PEM是一种编码(与.DER对比),而crt只是一种表示内容(与.key对比)的命名约定

–杰拉德
'18 Sep 6'在10:09

#2 楼

给定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脚本将不会被接收。

此过程在新版本中也可以使用:手册。

评论


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

– mcantsin
2014年3月28日19:21

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

– Tobias J
2014年4月8日在5:11

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

– Pevik
16年8月24日在9:32

我不得不做openssl x509 -outform pem -in in_file.pem -out out_file.crt。如果我做了-outform der,就对CRT文件中的“多个证书”有所抱怨。

–戴夫·海因(Dave Hein)
16年12月29日在20:50

谢谢!它也可以在18.04中工作,但是复制crt文件/ usr / share / ca-certificates / extra的第一个答案似乎不起作用。

– QPTR
19年1月17日在16:25

#3 楼

在Ubuntu上安装证书颁发机构

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

这是我的解决方案,我看了很长时间,试图弄清楚如何获取这可以正常工作。


从浏览器中提取.cer。我使用的是IE11。


设置-> Internet选项->中级证书颁发机构
选择要导出的证书颁发机构(certutil -config - -ping将向您显示您正在使用的证书颁发机构您位于公司代理的后面)
导出->选择要使用的格式:DER编码的.cer


以某种方式将.cer文件获取到Ubuntu
转换为.crt openssl x509 -inform DER -in certificate.cer -out certificate.crt

创建额外的目录sudo mkdir /usr/share/ca-certificates/extra

通过sudo cp certificate.crt /usr/share/ca-certificates/extra/certificate.crt复制证书

sudo update-ca-certificates
如果不是,则必须执行我做了什么,请转到sudo nano /etc/ca-certificates.conf

向下滚动并找到您的.cer,然后从文件名(update-ca-certificates doc)前面删除!-如果找不到证书运行dpkg-reconfigure ca-certificates

运行sudo update-ca-certificates

您可能需要分别信任来自Firefox,Chrome等的CA。使用Docker。


评论


在16.04中工作吗?

– Endolith
16-10-14在15:01



@endolith在16.04为我工作。

–Shubham
17年7月25日在6:19

谢谢你的第10点

– Electrodragon
20年6月1日在11:08

#4 楼

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:



在/ usr / share / ca-certificates中创建用于额外CA证书的目录:

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



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

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



使用/etc/ca-certificates.conf将行附加到<folder name>/<.crt name>

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



使用sudo update-ca-certificates非交互式更新证书

$ sudo update-ca-certificates
...
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.




评论


就我在Ubuntu 16.04上的情况而言,没有输出:找到foo.crt并输出:sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt是:cp:无法统计'foo.crt':否这样的文件或目录。可悲的是,我首先删除了ca证书。请问我该如何解决?

–REDHWAN
20年6月7日,下午3:28

#5 楼

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

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


评论


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

–贝蒂波尔
19年2月14日在16:07

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

–SommerEngineering
19年4月15日在14:31

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

– Kenorb
19年5月17日在10:49

#6 楼

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


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

更新:有必要检查一下它是否在Ubuntu 11上有效。我意识到我只是是在Ubuntu 12.04 LTS上完成的。

评论


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

– Aiyion.Prime
15年3月23日在16:47

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

–arc_lupus
16-4-4在7:25

#7 楼

从此处:

安装证书

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

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

评论


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

– jat255
2011-10-28 18:06



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

–Sparky1
11-10-28在19:01

#8 楼

以下是简单的步骤:



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

sudo apt-get install ca-certificates



将证书文件(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



更新证书:

sudo update-ca-certificates


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

注意:不要手动添加证书(如此处建议),因为它们不是持久性的并且将被删除。


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

#9 楼

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