首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在Debian上安装没有CA证书包的自定义ca证书?

是否可以在Debian上安装没有CA证书包的自定义ca证书?
EN

Unix & Linux用户
提问于 2022-01-30 18:42:16
回答 2查看 4.9K关注 0票数 3

是否可以在Debian上安装自定义ca证书而不安装ca-certificate包?

我倾向于在每个版本的生命周期之后运行我的服务器,几年后我似乎总是会遇到问题。简单的问题,比如cURL无法验证服务器的合法性,PHP的openssl.cafilecurl.cainfo等等。

我现在安装Buster,并希望避免任何问题的启动,这一次。

理想情况下,我想从cacert.pem (Mozilla源代码)下载它,把它放在一个目录中,然后告诉操作系统和任何要求它使用它的软件。这样,当它到期时,我可以从curl.se或Mozilla源代码重新下载最新的版本。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 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>

代码语言:javascript
运行
复制
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完全相同的证书。

编辑过的

票数 6
EN

Unix & Linux用户

发布于 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实用工具(如wgetcurl )默认使用此文件作为CA文件。

或找到指定CA文件或开关以禁用检查证书的开关。对于wget来说,它是:

  • wget --no-check-certificate -用于禁用CA检查
  • wget --ca-certificate=file -使用文件作为证书颁发机构包("CA")的文件来验证对等点。证书必须采用PEM格式。

示例

crt后缀将自己的ca复制到/usr/local/share/ca-certificates

代码语言:javascript
运行
复制
/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

代码语言:javascript
运行
复制
/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.

核实:

代码语言:javascript
运行
复制
/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
代码语言:javascript
运行
复制
/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
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/688608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档