首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLSEC错误:“未能加载证书”

XMLSEC错误:“未能加载证书”
EN

Stack Overflow用户
提问于 2018-06-20 15:33:14
回答 1查看 1.2K关注 0票数 0

我正试图在我的项目中使用python工具包(或其中的一部分),但在这个问题上我会尝试解决一些问题。在我的本地机器(ubuntu18.04)中,我启动并运行了所有的东西,但是当涉及到在centOS机器上安装它时,我遇到了几个问题。我使用的版本(必须使用)是CentOS 6.8。我构建了我需要的所有rpm包(依赖项)并安装了它们。在python代码的下面一行中,我得到了stuc的错误,“未能加载证书”:

代码语言:javascript
复制
sign_key.loadCert(file_cert.name, xmlsec.KeyDataFormatCertPem)

这个loadCert函数是dm.xmlsec.binding包的一部分。所以我检查了这个函数,这就是:

代码语言:javascript
复制
def loadCert(self, char *filename, xmlSecKeyDataFormat key_data_format):
    """load certificate of *key_data_format* from *filename*."""
    cdef int rv
    with nogil:
        rv = xmlSecCryptoAppKeyCertLoad(self.key, filename, key_data_format)
    if rv < 0:
       raise Error("failed to load certificate", filename, rv)

嗯,我想问题只能出现在"xmlSecCryptoAppKeyCertLoad“中,所以我检查了这个属于XMLSEC库的函数,定义为:

代码语言:javascript
复制
int xmlSecCryptoAppKeyCertLoad(xmlSecKeyPtr key, const char* filename, xmlSecKeyDataFormat format) {
    if((xmlSecCryptoDLGetFunctions() == NULL) || (xmlSecCryptoDLGetFunctions()->cryptoAppKeyCertLoad == NULL)) {
        xmlSecNotImplementedError("cryptoAppKeyCertLoad");
        return(-1);
    }

    return(xmlSecCryptoDLGetFunctions()->cryptoAppKeyCertLoad(key, filename, format));

}

函数"loadCert“的参数是正确的,正确的证书文件名和正确的格式。我在命令行中手动尝试,得到了相同的错误(仅在centOS机器中,在我的Ubuntu中一切正常)。

知道问题出在哪里了吗?我将不得不了解正在发生的事情,但如果有人能帮忙的话,那就太好了。

提前感谢!

对于这个问题来说并不重要,但万一可能会对其他人有所帮助,我在红帽子机器上安装dm.xmlsec.binding时遇到了问题,我按照https://github.com/onelogin/python-saml/issues/30中描述的内容构建了包,这意味着更新/usr/bin/xmlsec1-config文件以包含“-c173”中的"-DXMLSEC_NO_SIZE_T“。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-08 09:17:42

我通过从内存加载证书来解决这个问题,而不是从文件中加载它。尽管如此,我还是不知道为什么centOS 6.8中文件加载不起作用(或者对我不起作用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50951967

复制
相关文章

相似问题

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