在程序的构建时,我希望生成一个新的密钥对,并创建一个将被嵌入(安全)到程序中的证书。密钥对的目的是对XML文档进行数字签名。我希望与密钥对关联的链一直到我在构建机器上拥有的证书,然后一直到在构建机器上签署证书的CA。
SSL证书足够好吗?还是密码签名证书?或者,我需要从CA请求某种特定类型的证书,然后才能从CA获得证书?
发布于 2011-08-30 12:27:49
证书“必须”具有验证人员所要寻找的特征。“验证者”是指任何系统,它将查看您的签名和证书,并试图确定该签名是否可以接受。
大多数处理X.509证书的验证程序都应用X.509标准和因特网X.509配置文件规定的规则。有许多这样的规则;最重要的是:
digitalSignature和nonRepudiation标志的密钥使用扩展(或者根本没有密钥使用扩展)。证书是否是“SSL证书”或“代码签名证书”或任何其他此类名称,主要取决于在其密钥使用扩展中设置了哪些标志。重要的一点是,将“嵌入证书”链接到“生成机器证书”只有在您希望XML签名由泛型验证器进行验证时才有意义,这些验证器将不知道您的特定应用程序,并且使用一组通用的信任锚(包括卖给您的“构建机器证书”)。很可能它无法工作,因为您的“生成机器证书”设置了"CA“位是不可能的。要检查证书的内容,可以使用OpenSSL:命令行工具(已经包含在MacOS X、任何好的Linux或*BSD以及MacOS工具可用):
openssl x509 -text -noout -in cert.pem
openssl x509 -text -noout -inform DER -in cert.crt(如果证书采用PEM格式,则使用第一个;如果是PEM格式,则使用第二个;或者同时尝试两者。)
如果您控制验证器(即在您的应用程序中,验证XML文档上签名的系统将是您也提供的一些软件),那么插入到商业CA的构建机证书是无用的;最好创建自己的CA并制作证书。OpenSSL可以这样做,或者您可以使用更图形化的解决方案,比如EJBCA。
我故意不对您的“安全嵌入证书”概念的正确性作出任何断言。
https://security.stackexchange.com/questions/6699
复制相似问题