自动撤消前员工的密钥
他们给我发送了一个
.pem
文件,我不确定如何添加它到我的Ubuntu安装。发送的说明是:“在Mac上双击它应该安装它。” 我该如何进行?我需要对OpenSSL进行一些操作以创建
.key
,.csr
或.crt
文件吗?#1 楼
安装CA将PEM格式的证书(其中包含
----BEGIN CERTIFICATE----
的格式)复制到/usr/local/share/ca-certificates
中,并以.crt
文件扩展名命名。然后运行
sudo update-ca-certificates
。注意:仅此安装影响使用此证书存储区的产品。有些产品可能会使用其他证书存储区;如果使用这些产品,则还需要将此CA证书添加到其他证书存储中。 (Firefox指令,Chrome指令,Java指令)
测试CA
您可以通过查找刚刚在
/etc/ssl/certs/ca-certificates.crt
中添加的证书(这只是所有受信任的长列表)来验证此CA是否有效CA串联在一起。还可以通过尝试连接到您知道使用刚安装的CA签名的证书的服务器来使用OpenSSL的s_client。
$ openssl s_client -connect foo.whatever.com:443 -CApath /etc/ssl/certs
CONNECTED(00000003)
depth=1 C = US, ST = Virginia, O = "Whatever, Inc.", CN = whatever.com, emailAddress = admin@whatever.com
verify return:1
depth=0 C = US, ST = Virginia, L = Arlington, O = "Whatever, Inc.", CN = foo.whatever.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=Virginia/L=Arlington/O=Whatever, Inc./CN=foo.whatever.com
i:/C=US/ST=Virginia/O=Whatever, Inc./CN=whatever.com/emailAddress=admin@whatever.com
... snip lots of output ...
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1392837700
Timeout : 300 (sec)
Verify return code: 0 (ok)
寻找的是输出顶部附近的证书链。这应该将CA显示为颁发者(
i:
旁边)。这告诉您服务器正在提供由要安装的CA签名的证书。其次,查找最后的
verify return code
设置为0 (ok)
。评论
这个真的有效
– Sabareesh Kkanan
15年8月4日在20:14
感谢您注意到firefox / chrome不使用默认的证书存储。
– Tim Strijdhorst
2015年12月10日下午16:26
请注意,update-ca-certificates可能非常挑剔(可能是设计使然)。 mycert.pem.crt无效,但mycert.crt无效。我也认为它需要是/ usr / local / share / ca-certificates,而不是/ usr / share / ca-certificates(尽管在/etc/ca-certificates.conf中有什么注释)。
–迷宫
2015年12月15日17:39
感谢crt扩展名的评论,这是为我完成这项工作的秘密,我获得了带有cert扩展名的证书,并对为什么什么都不起作用感到困惑。
–赎金Briggs
16-3-29在16:31
一个警告:s_client默认情况下不发送SNI,并且服务器可能需要SNI,尤其是当它支持具有不同证书的虚拟主机/站点时;对于这种情况,请添加-servername foo.whatever.com。或者,如果是Web服务器,则使用curl(或现代版本)自动执行SNI的curl或wget。
–dave_thompson_085
16年5月14日在3:40
#2 楼
man update-ca-certificates:update-ca-certificates is a program that updates the directory /etc/ssl/certs to hold SSL
certificates and generates ca-certificates.crt, a concatenated single-file list of
certificates.
It reads the file /etc/ca-certificates.conf. Each line gives a pathname of a CA
certificate under /usr/share/ca-certificates that should be trusted. Lines that begin
with "#" are comment lines and thus ignored. Lines that begin with "!" are deselected,
causing the deactivation of the CA certificate in question. Certificates must have a .crt
extension in order to be included by update-ca-certificates.
Furthermore all certificates with a .crt extension found below /usr/local/share/ca-
certificates are also included as implicitly trusted.
从以上内容,我推断将本地证书文件放入受信任存储区的首选方法是将它们放入
/usr/local/share/ca-certificates
,然后运行update-ca-certificates
。您无需直接触摸/etc/ssl/certs
。评论
似乎也需要使用.crt扩展名命名证书。
–善待您的Mod
13年5月5日在23:12
感谢您的注释@phyzome-否则将无法添加我的证书。
–塞伊里亚
2015年3月17日14:03
我必须添加--fresh才能使其正常工作。例如更新ca证书-新鲜
–伊利亚·林恩(Elijah Lynn)
19年6月25日在4:13
#3 楼
关于update-ca-certificates
的其他答案对于从系统证书存储区读取的应用程序是正确的。对于Chrome和Firefox,以及其他一些可能的证书,必须将证书放在nssdb(Mozilla NSS库的后端)中。来自
https://code.google.com/p/chromium/ wiki / LinuxCertManagement:例如,要信任用于颁发SSL服务器证书的根CA证书,请使用
certutil -d sql:$ HOME / .pki / nssdb -A -t“ C ,“ -n <证书昵称> -i <证书名称>
其中
<certificate nickname>
是任意的,而<certificate filename>
是您的.pem或.crt文件。其他有用的参考资料:
常规说明:https://wiki.archlinux.org/index.php/Network_Security_Services
certutil
手册页,描述了上面使用的参数:https:// developer .mozilla.org / zh-CN / docs / NSS_reference / NSS_tools _:_ certutil 评论
谢谢。它可以在适用于Chrome 53.0.2785.143的Ubuntu 16.04上运行,但是Firefox 49似乎具有单独的存储数据库,必须从about:preferences#advanced [查看证书]-> [权限]-> [导入]中添加。 askubuntu.com/a/248326/535154
– mauron85
16-10-12在12:31
顺便说一句,如果要在第一次运行Chrome之前安装cert(即.pki / dir仍然丢失),则必须首先创建nssdb:mkdir -p $ HOME / .pki / nssdb && chmod -R 0700 $ HOME / .pki && certutil -d sql:$ HOME / .pki / nssdb -N-空密码
–akavel
16年15月15日在16:21
有一种方法可以使Chrome和Firefox从系统证书存储中读取。见我的答案:superuser.com/a/1312419/506107
– Wheeler
18年4月10日在1:05
太好了,谢谢。现在可以完美地在企业SSL解密后面使用Slack和Teams Preview。
–贝文
20年1月21日在23:01
Firefox允许您配置安全模块...默认情况下它不使用chrome使用的相同模块...您可以通过加载/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so来添加它在firefox证书设置下的安全模块列表中。一旦知道,超级简单。
–雷·福斯(Ray Foss)
20-09-16在17:06
#4 楼
我遇到了同样的问题,我不得不将.pem
文件复制到/usr/local/share/ca-certificates
,并将其重命名为.crt
。例如,如果您没有.cer
,则可以使用openssl轻松地将.pem
文件转换为.pem
。复制文件后,必须执行
sudo update-ca-certificates
。评论
openssl x509-通知DER-输入certificate.cer-输出certificate.crt
– webwurst
18年2月26日在11:37
#5 楼
对于基于Debian的较新版本,您可能需要运行:执行以下任何操作之前,您当然仍然需要将证书(.crt文件)复制到/ usr / share / ca-certificates :)
#6 楼
基于dwmw2的答案,您实际上可以告诉使用NSS进行证书管理的应用程序使用系统信任库。默认情况下,
libnss3
附带一组只读的根CA证书(libnssckbi.so
),因此大多数时候您需要手动将它们自己添加到位于$HOME/.pki/nssdb
的本地用户信任存储中。 p11-kit
提供了libnssckbi.so
的直接替代品,用作/etc/ssl/certs
中安装的系统范围根证书的适配器。 编辑:
似乎
libnssckbi.so
的版本比libnss3
的版本更多。以下是查找所有脚本,备份它们并用指向p11-kit
的链接替换它们的脚本:为此,请安装p11-kit
和libnss3
(如果尚未安装):sudo apt-get update && sudo apt-get install -y p11-kit libnss3
find / -type f -name "libnssckbi.so" 2>/dev/null | while read line; do
sudo mv $line ${line}.bak
sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so $line
done
然后备份
libnssckbi.so
提供的现有libnss3
:sudo apt-get update && sudo apt-get install -y p11-kit libnss3
最后,创建符号链接: :
sudo mv /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so.bak
现在,如果您使用
ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
将证书添加到CA存储,则这些证书现在可用于使用NSS(update-ca-certificates
)的应用程序,例如Chrome。 评论
我一直在努力争取Ubuntu 18.04在过去3天中能够正常运行,无论出于何种原因它都无法正常工作。我将p11-kit-trust.so链接到libnssckbi.so,但是当我这样做时,再也没有证书了。任何我启用了https的网站(基本上都是https)都会提示存在安全问题。有什么明显的我想念的东西吗?
–凯文·瓦斯科(Kevin Vasko)
19-10-25在21:34
这真是太棒了,无论如何对于Firefox来说都是一种魅力。建议的脚本对您有危险。我建议您先在系统上尝试单独查找,以查看找到的内容。我有一个庞大的系统,它会在时移备份中发挥作用,例如,根据我正在处理的内容,我随时都可以安装几个sshfs,并且也可以拆分成多个。无论如何,我都会使用locate查找它们并一一修补它们,或者编写一个仅遍历指定文件的脚本。
– Bernd Wechner
20年8月20日在12:19
@KevinVasko我现在是20.04,没有麻烦。仅尝试使用Firefox,但工作正常。在执行此类操作并保留它们时,我会做笔记,并为自己指出,这些文件是.so文件,所以是二进制目标文件,并且为了确保Firefox使用新的文件,必须关闭Firefox并重新启动。但是,are,不是很清楚“什么都没有证书”的意思-在什么情况下?在/ etc / ssl / certs中?
– Bernd Wechner
20年8月20日在12:24
#7 楼
如上所述,使用NSS的各种应用程序都有自己的证书存储。就Ubuntu而言,您必须手动使用certutil
为每个用户的每个应用程序添加您的CA。在Fedora等其他发行版中,这种东西Just Works™,您应该提交可以针对不自动信任使用
update-ca-trust
安装的CA的任何应用程序提供错误。 ,例如,通过建立从p11-kit-modules
到p11-kit-trust.so
的符号链接,您将获得系统配置的信任根,而不是某些硬编码的信任根。请注意,Ubuntu附带了带有硬编码信任根的libnssckbi.so库的多个不同副本,您必须替换所有这些副本!cf https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285
评论
当我执行sudo查找/ -type f -name“ libnssckbi.so”时,它在三个位置找到libnssckbi.so:/ usr / lib / thunderbird /,/ usr / lib / firefox /和/ usr / lib / x86_64- linux-gnu / nss /。所以您是说我应该将所有这三个文件夹中的libnssckbi.so链接到p11-kit-trust.so?
– Wheeler
18年4月10日在0:06
好的,只需确认链接/usr/lib/x86_64-linux-gnu/nss/libnssckbi.so-> /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so就可以像执行CHARM。我能够将证书添加到/ usr / local / share / ca-certificates,运行sudo update-ca-certificates,然后PRESTO,Chrome开始接受自签名证书。
– Wheeler
18年4月10日在0:32
@ dwmw2我一直在与Ubuntu 18.04进行斗争,以尝试使其在过去3天中都能正常工作,无论出于何种原因,它都无法正常工作。我将p11-kit-trust.so链接到libnssckbi.so,但是当我这样做时,再也没有证书了。任何我启用了https的网站(基本上都是https)都会提示存在安全问题。有什么明显的我想念的东西吗?
–凯文·瓦斯科(Kevin Vasko)
19-10-25在21:44
评论
注释“发送的说明是:\“在Mac上双击它应该安装它。”“令我很高兴@mzoll以及转义这些引号的方式