问题描述
我是按照赵春平前辈的方法去建立一个ssl环境的,在最后一步服务器端通过证书与密钥建立ssl3通信时(命令为openssls_server-certsslservercert.pem-keysslserverkey.pem-CAfiledemoCA/cacert.pem-ssl3)出现了以下的错误unabletoloadcertificate2985:error:0906D06C:PEMroutines:PEM_read_bio:nostartline:pem_lib.c:650:Expecting:TRUSTEDCERTIFICATE上面应该是无法获取证书,但是我前面在创建证书的时候都没有错,请问下这是什么原因呀,求各位帮帮忙吧!!!
解决方案
解决方案二:
楼主解决了没,我也碰到类似问题
解决方案三:
证书的路径正确吗?
解决方案四:
证书文件有两种编码方式,即二进制编码(扩展名为.cer)与Base64编码(扩展名为.pem)。对于pem格式的公钥证书,其显著特征是,文件的开头第一行必定是“-----BEGINCERTIFICATE-----”;而cer格式的公钥证书则没有此特征。我没有使用服务器软件配置过SSL环境,但以我用openssl编程的经验来说,不同编码方式的证书有不同的加载方式,加载方式和证书格式不匹配就会加载出错。我看你的错误提示,觉得你前面生成的证书可能不是pem格式的,你退回去检查一下吧。检查一个证书是否为pem格式也很简单,用记事本打开证书,有固定起始行行“-----BEGINCERTIFICATE-----”,并且可识别的就是pem格式证书;没有固定起始行,并且显示乱码的就是cer格式的证书。
解决方案五:
引用3楼Ping_Fani07的回复:
证书文件有两种编码方式,即二进制编码(扩展名为.cer)与Base64编码(扩展名为.pem)。对于pem格式的公钥证书,其显著特征是,文件的开头第一行必定是“-----BEGINCERTIFICATE-----”;而cer格式的公钥证书则没有此特征。我没有使用服务器软件配置过SSL环境,但以我用openssl编程的经验来说,不同编码方式的证书有不同的加载方式,加载方式和证书格式不匹配就会加载出错。我看你的错误提示,觉得你前面生成的证书可能不是pem格式的,你退回去检查一下吧。检查一个证书是否为pem格式也很简单,用记事本打开证书,有固定起始行行“-----BEGINCERTIFICATE-----”,并且可识别的就是pem格式证书;没有固定起始行,并且显示乱码的就是cer格式的证书。
不好意思,我要纠正一点,二进制编码的证书文件,其扩展名为der,而非cer,请将我在3楼中所说的cer全部替换成der,学艺不精,见谅~证书文件有很多扩展名,其中只有pem与der两个指定了编码类型,其他的诸如cer、crt等等,指定的内容与编码类型无关。详参此文: