我有一个带有这些命令的自签名证书链,并在Apache服务器上配置了它们
但是当我尝试openssl s_client-showcerts-servername server-connect my-hot.local:443-cafile all.crt
我从opensslverify return code:24(无效的CA证书)
中得到一个错误
用于生成证书的命令或配置文件有问题吗?
# self signed root cert
openssl genrsa -aes256 -out ca.key 4096
openssl req -new -x509 -days 3000 -key ca.key -out ca.crt -config ca.conf
# intermediate cert signed with the root cert
openssl genrsa -aes256 -out int.key 4096
openssl req -new -key int.key -out int.csr -config int.conf
openssl x509 -req -days 3000 -in int.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out int.crt
# leaf cert signed with the intermediate cert
openssl genrsa -aes256 -out leaf.key 4096
openssl req -new -key leaf.key -out leaf.csr -config leaf.conf
openssl x509 -req -days 3000 -in leaf.csr -CA int.crt -CAkey int.key -set_serial 01 -out leaf.crt
cat ca.crt int.crt leaf.crt > all.crt
[req]
distinguished_name=req_distinguished_name
x509_extensions=v3_ca
dirstring_type=nobmp
[req_distinguished_name]
commonName=公用名(例如,您的姓名)
commonName_default=root
[v3_ca]
keyusage=关键,keycertsign
subjectkeyidentifier=hash
authoritykeyidentifier=keyid:始终
[req]
distingished_name=req_distingished_name
x509_extensions=ext
[req_distingished_name]
commonName=公用名(例如,您的姓名)
commonName_default=int
[ext]
keyusage=关键,keycertsign
subjectkeyidentifier=hash
authoritykeyidentifier=keyid:始终,颁发者:始终
[req]
distinguished_name=req_distinguished_name
dirstring_type=nobmp
[req_distinguished_name]
commonName=公用名(例如,您的姓名)
commonName_default=叶
CA根证书必须标记为属于CA:
CA证书必须包含将CA字段设置为true的basicConstraints值。最终用户证书必须将CA设置为FALSE或完全排除扩展名。某些软件可能要求包含basicConstraints,并且最终实体证书的CA设置为FALSE。
这是通过基本约束标准扩展完成的。要检查根证书是否设置了CA
属性,请运行openssl x509-text-noout-in ca.crt
并在输出中查找ca:true
。请注意,OpenSSL实际上允许您使用非CA根证书(或至少使用过)签署其他证书,但对此类证书的验证将失败(因为CA检查将失败)。
对于配置文件,只需在生成根证书的命令中包含-extensionsv3_CA
就足够了:
openssl req -new -x509 -extensions v3_ca -days 3000 -key ca.key -out ca.crt -config ca.conf -extfile ca.conf
我最近升级了Inteliij IDEA 2019.2,如果我尝试从IDE中提取Git,我会发现以下错误:无法访问'https://github.xxx.com/app-Hello-USD/DGS.git/“:SSL证书问题:证书链中的自签名证书。 有人能帮我什么选项,我必须启用。 谢谢
问题内容: 当尝试使用其PHP库通过Twilio发送消息时,我正在为这个错误而苦苦挣扎: 我在Windows 7上使用了wamp。 我当然找到了所有其他有关证书错误的信息。据我所知,通常更新或添加文件即可解决该问题。但是,即使这样做,我仍然遇到相同的错误。 就像这里所做的健全性检查一样,这正是我所做的: 从此处下载了最新的证书:http : //curl.haxx.se/ca/cacert.pem
问题内容: 我遇到客户端https请求的问题。 片段可以如下所示: 我得到的是错误:证书链中的自签名证书。 使用邮递员时,我可以导入客户端证书和密钥,并且可以毫无问题地使用它。有没有可用的解决方案?我还希望对邮递员如何处理证书和工作方式有所了解。 问题答案: 根据您的问题,我想您正在使用SSL通讯的自签名证书进行开发。 如果是这种情况,请在您正在运行节点的任何地方或直接使用 这指示节点允许不信任的
问题内容: 我有一个网络应用程序,允许用户上传pkcs12。我将pkcs12作为二进制存储在数据库中。有什么办法让我知道pkcs12中的证书是自签名的还是CA签名的? 我正在tomcat上运行Java Web应用程序,并且可以使用openssl。 问题答案: 但是,我认为还有一些更重要的事情要解决- 为什么 人们想了解自签名证书。目标是什么?解决了什么问题?在大多数情况下,可能尝试将证书分为自签名
我正在云中的Ubuntu12.10服务器(AWS)上运行一个Apache CouchDB实例(1.3.0版)。我正在尝试让SSL在我的couchDB实例上工作。 基本的SSL设置非常简单。我已将我的证书和密钥放在一个目录中,并在我的本地应用程序中取消了以下行的注释。ini文件 我还确保这些文件的所有权是正确的。 这很好,couchDB服务器启动,您可以导航到https://mycouchdbser
问题内容: 我尝试将带有正确APP_ID,APP_SECRET等的curl请求发送到 我需要从中获取access_token,但需要返回FALSE并打印下一条消息: 我的代码是: 当我手动移动到上面的链接时,我会很好地获得access_token。为什么卷曲不起作用?请帮助。 问题答案: 建议禁用的答案不被接受。问题是“为什么它不适用于cURL”,正如Martijn Hols正确指出的那样,这很危