AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 688608
Accepted
Jeff
Jeff
Asked: 2022-01-31 10:42:16 +0800 CST2022-01-31 10:42:16 +0800 CST 2022-01-31 10:42:16 +0800 CST

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

  • 772

是否可以在不安装软件包的情况下在 Debian 上安装自定义 ca 证书ca-certificate?

我倾向于在每个版本的生命周期之后运行我的服务器,而且几年后我似乎总是遇到问题。简单的问题,例如 cURL 无法验证服务器的合法性、PHPopenssl.cafile和curl.cainfo等。没有什么破坏性的,但很烦人。

我现在正在安装 Buster,希望从一开始就避免任何问题。

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

debian certificates
  • 2 2 个回答
  • 1245 Views

2 个回答

  • Voted
  1. Best Answer
    telcoM
    2022-01-31T16:45:51+08:002022-01-31T16:45:51+08:00

    update-ca-certificates实际上是一个shell脚本。您可以阅读它并根据您的需要调整其中的一部分。

    简而言之:当update-ca-certificates添加证书时,它会创建一个/etc/ssl/certs/指向 PEM 格式证书文件的符号链接。update-ca-certificates期望 CA 证书位于带有*.crt后缀的 PEM 格式文件中,并且链接名称的后缀将*.pem改为:so/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 .可用于为该目录中的所有证书创建哈希符号链接。

    /etc/ssl/certificates/ca-certificates.crt对于那些只接受其受信任 CA 证书列表作为单个文件的程序,新证书 PEM 文件的内容也将附加到. 如果 PEM 格式的证书缺少其尾随换行符,则脚本将在将证书附加到ca-certificates.crt.

    该update-ca-certificates脚本还将运行放置在/etc/ca-certificates/update.d/.

    如果您安装了任何.dpkg-packaged 版本的 Java,很可能会有一个名为/etc/ca-certificates/update.d/jks-keystoredrop 的 Java 包的脚本,该脚本将类似地更新位于 的 Java 密钥库文件/etc/ssl/certs/java/cacerts,因此它也将包含与 OpenSSL CA 完全相同的证书证书目录/etc/ssl/certs或文件/etc/ssl/certs/ca-certificates.crt.

    已编辑

    • 4
  2. Rosta Kosta
    2022-02-01T02:53:12+08:002022-02-01T02:53:12+08:00
    • 复制my_own_ca.crt到/usr/local/share/ca-certificates
    • 运行脚本update-ca-certificates

    update-ca-certificates创建必要的 simlink 并更新 /etc/ssl/certs/ca-certificates.crt文件。Linux 实用工具喜欢wget或curl默认将此文件用作 CA 文件。

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

    • wget --no-check-certificate- 用于禁用 CA 检查
    • wget --ca-certificate=file- 使用文件作为带有证书授权包(“CA”)的文件来验证对等点。证书必须为 PEM 格式。

    例子

    复制自己的 cacrt后缀为/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
    
    • 1

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve