You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置OpenSSL为指定域名设置不同的可信证书集合?

解决方案

核心思路

针对不同域名动态调整信任的证书集合:

  • 对website1.com、website2.com、website3.com这三个域名,合并自定义证书和系统默认证书包作为验证依据
  • 其他域名只使用系统默认证书包做验证

方案1:代码层面(适合自主开发的应用)

如果你的应用是基于OpenSSL API开发的,直接通过自定义证书存储和验证逻辑实现:

  1. 先加载Fedora 37的系统证书包到OpenSSL的证书存储:
    X509_STORE *store = X509_STORE_new();
    X509_LOOKUP *lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file());
    // Fedora 37默认系统证书路径
    X509_LOOKUP_load_file(lookup, "/etc/pki/tls/certs/ca-bundle.crt", X509_FILETYPE_PEM);
    
  2. 判断当前访问的域名,如果是指定的三个,就把自定义证书也加到这个存储里:
    // 假设domain是当前要访问的域名字符串
    if (strcmp(domain, "website1.com") == 0 || strcmp(domain, "website2.com") == 0 || strcmp(domain, "website3.com") == 0) {
        X509 *custom_cert = PEM_read_X509_FILE("/path/to/your/custom_certs.crt", NULL, NULL, NULL);
        X509_STORE_add_cert(store, custom_cert);
        X509_free(custom_cert);
    }
    
  3. 把这个配置好的证书存储关联到SSL上下文,后续的SSL连接就会用这个规则验证:
    SSL_CTX_set_cert_store(ssl_ctx, store);
    

方案2:脚本封装(适合用现成工具访问的场景)

如果是用curl、wget这类工具访问不同域名,写个shell脚本做域名判断,动态指定CA证书:

  1. 保存下面的脚本(比如命名为domain_access.sh):
    #!/bin/bash
    # 指定需要额外信任自定义证书的域名
    TRUSTED_DOMAINS=("website1.com" "website2.com" "website3.com")
    # Fedora 37系统证书默认路径
    SYSTEM_CA="/etc/pki/tls/certs/ca-bundle.crt"
    # 你的自定义证书路径
    CUSTOM_CA="/path/to/your/custom_certs.crt"
    
    # 检查输入的域名是否在信任列表里
    if [[ " ${TRUSTED_DOMAINS[@]} " =~ " $1 " ]]; then
        # 合并系统证书和自定义证书到临时文件
        cat "$SYSTEM_CA" "$CUSTOM_CA" > /tmp/combined_ca.tmp
        # 用合并后的证书访问目标域名
        curl --cacert /tmp/combined_ca.tmp "https://$1"
        # 清理临时文件
        rm -f /tmp/combined_ca.tmp
    else
        # 其他域名直接用系统证书访问
        curl "https://$1"
    fi
    
  2. 给脚本加执行权限:chmod +x domain_access.sh
  3. 使用时直接传域名:./domain_access.sh website1.com

注意点

  • 确认Fedora 37的系统证书路径,如果你的系统有修改,可以用openssl version -d查看默认配置目录,再找对应的CA文件。
  • 代码方案里要记得释放证书对象和存储的内存,避免内存泄漏。
  • 脚本里的临时文件用完就删,避免残留或被篡改。

内容的提问来源于stack exchange,提问作者socketpair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:25:20