是否可以在Debian上安装自定义ca证书而不安装ca-certificate
包?
我倾向于在每个版本的生命周期之后运行我的服务器,几年后我似乎总是会遇到问题。简单的问题,比如cURL无法验证服务器的合法性,PHP的openssl.cafile
和curl.cainfo
等等。
我现在安装Buster,并希望避免任何问题的启动,这一次。
理想情况下,我想从cacert.pem (Mozilla源代码)下载它,把它放在一个目录中,然后告诉操作系统和任何要求它使用它的软件。这样,当它到期时,我可以从curl.se或Mozilla源代码重新下载最新的版本。
发布于 2022-01-31 00:45:51
update-ca-certificates
实际上是一个shell脚本。你只需阅读它,并使其部分适应你的需要。
简而言之:当update-ca-certificates
添加证书时,它会创建一个指向PEM格式证书文件的/etc/ssl/certs/
的符号链接。update-ca-certificates
希望CA证书一式一份放在一个带有*.crt
后缀的PEM格式化文件中,并且链接名将改为*.pem
:因此/etc/ssl/certs/<somename>.pem
将被链接到/elsewhere/<somename>.crt
。
OpenSSL要求包含可信CA证书的目录可以通过散列访问它们,因此在/etc/ssl/certs/
目录中将创建另一个符号链接:<certificate hash>.0 -> <somename>.pem
。可以使用以下方法手动计算<certificate hash>
:
openssl x509 -in <certificate PEM file> -noout -hash
如果另一个证书具有相同的散列,则.0
部分将递增到.1
,然后增加到.2
等,直到找到唯一的名称为止。这种散列不是一种安全机制:它只允许OpenSSL在验证证书时通过其哈希快速查找所需的CA证书。
或者,可以使用cd /etc/ssl/certs; openssl rehash .
为该目录中的所有证书创建散列符号链接。
对于那些只接受其信任CA证书列表为单个文件的程序,新证书PEM文件的内容也将附加到/etc/ssl/certificates/ca-certificates.crt
。如果PEM格式的证书缺少其尾随换行符,则脚本将在将证书附加到ca-certificates.crt
时自动添加一个。
update-ca-certificates
脚本还将运行放置到/etc/ca-certificates/update.d/
中的任何脚本。
如果安装了任何.dpkg
-packaged版本的Java,很可能会有一个名为/etc/ca-certificates/update.d/jks-keystore
的脚本被Java删除,该脚本将类似地在/etc/ssl/certs/java/cacerts
上更新Java文件,以便它还包含与OpenSSL CA证书目录/etc/ssl/certs
或文件/etc/ssl/certs/ca-certificates.crt
完全相同的证书。
编辑过的
发布于 2022-01-31 10:53:12
my_own_ca.crt
复制到/usr/local/share/ca-certificates
update-ca-certificates
update-ca-certificates
创建必要的simlink并更新/etc/ssl/certs/ca-证书.certs文件。Linux实用工具(如wget
或curl
)默认使用此文件作为CA文件。
或找到指定CA文件或开关以禁用检查证书的开关。对于wget来说,它是:
wget --no-check-certificate
-用于禁用CA检查wget --ca-certificate=file
-使用文件作为证书颁发机构包("CA")的文件来验证对等点。证书必须采用PEM格式。用crt
后缀将自己的ca复制到/usr/local/share/ca-certificates
/usr/local/share/ca-certificates# ls -alFh
celkem 16K
drwxrwsr-x 2 root staff 4,0K úno 5 13:02 ./
drwxrwsr-x 7 root staff 4,0K kvě 7 2014 ../
-rw-r--r-- 1 root staff 1,5K úno 5 13:02 thawte-Primary-Root-CA-G3.crt
-rw-r--r-- 1 root staff 1,7K úno 5 13:01 thawte-SHA256-ssl-ca.crt
运行update-ca-certificates
/usr/local/share/ca-certificates# update-ca-certificates
Updating certificates in /etc/ssl/certs... WARNING: Skipping duplicate certificate thawte-Primary-Root-CA-G3.pem
WARNING: Skipping duplicate certificate thawte-Primary-Root-CA-G3.pem
WARNING: Skipping duplicate certificate thawte-primary-root.pem
WARNING: Skipping duplicate certificate thawte-primary-root.pem
2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
核实:
/etc/ssl/certs# ls -alFh | grep local
lrwxrwxrwx 1 root root 62 úno 5 13:03 thawte-Primary-Root-CA-G3.pem -> /usr/local/share/ca-certificates/thawte-Primary-Root-CA-G3.crt
lrwxrwxrwx 1 root root 57 úno 5 13:03 thawte-SHA256-ssl-ca.pem -> /usr/local/share/ca-certificates/thawte-SHA256-ssl-ca.crt
/etc/ssl/certs# openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt | openssl pkcs7 -print_certs -noout
subject=/CN=ACEDICOM Root/OU=PKI/O=EDICOM/C=ES
issuer=/CN=ACEDICOM Root/OU=PKI/O=EDICOM/C=ES
subject=/C=CO/O=Sociedad Cameral de Certificaci\xC3\xB3n Digital - Certic\xC3\xA1mara S.A./CN=AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
issuer=/C=CO/O=Sociedad Cameral de Certificaci\xC3\xB3n Digital - Certic\xC3\xA1mara S.A./CN=AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
subject=/C=IT/L=Milan/O=Actalis S.p.A./03358520967/CN=Actalis Authentication Root CA
issuer=/C=IT/L=Milan/O=Actalis S.p.A./03358520967/CN=Actalis Authentication Root CA
subject=/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
issuer=/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
...
Find your CA
https://unix.stackexchange.com/questions/688608
复制相似问题