相关疑难解决方法(0)

生成自签名证书时指定主题备用名称

有没有办法获取设置了主题备用名称的 .crt 和 .key 文件?我正在使用此命令生成的 openssl .crt 和 .key 配置代理

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout proxy.key -out proxy.crt
Run Code Online (Sandbox Code Playgroud)

然后,我使用 .key 和 .crt 来获取 .pem 并在客户端使用它。该证书可以很好地保护 https 连接,但我收到一条警告,表明证书中未设置主题备用名称。在另一个客户端中,我使用的警告实际上是一个终止连接的错误。

这里的解决方案https://security.stackexchange.com/a/91556给了我一个.csr,我将其重命名为我需要的.crt,当我与客户端一起使用它时,https连接因不正确的ssl证书而失败。

https openssl ssl-certificate x509

11
推荐指数
2
解决办法
2万
查看次数

localhost和"stream_socket_enable_crypto():SSL操作失败,代码为1"

我使用gmail发送电子邮件,一切都运行得很好,但突然之间停止了工作.它告诉我这个

ErrorException in StreamBuffer.php line 94:

stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

in StreamBuffer.php line 94
at HandleExceptions->handleError('2', 'stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed', 'C:\xampp\htdocs\coparmex\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php', '94', array())
at stream_socket_enable_crypto(resource, true, '9') in StreamBuffer.php line 94
at Swift_Transport_StreamBuffer->startTLS() in EsmtpTransport.php line 313
at Swift_Transport_EsmtpTransport->_doHeloCommand() in AbstractSmtpTransport.php line 118
at Swift_Transport_AbstractSmtpTransport->start() in Mailer.php line 79
at Swift_Mailer->send(object(Swift_Message), array()) in Mailer.php line 385
at Mailer->sendSwiftMessage(object(Swift_Message)) in Mailer.php …
Run Code Online (Sandbox Code Playgroud)

php email laravel laravel-5.2

11
推荐指数
2
解决办法
4万
查看次数

使用 keyUsage 创建自签名证书

我正在使用自签名的数字签名证书签署 PDF,并且我正在寻找一种方法来添加keyUsage链接)我找到了这篇文章,并相应地更改了我的 openssl.cnf。

req_extensions = v3_req
[ v3_req ]
basicConstraints = CA:TRUE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment,dataEncipherment

我正在使用下一个代码对数字签名进行自签名:

openssl genrsa -des3 -passout pass:1234 -out aaa.private.pem -extensions v3_req

openssl req -passout pass:1234 -subj "/C=IL/ST= - /L=/O=/CN=AB" -utf8 -key aaa.private.pem -passin pass:1234 -new > aaa.cert. csr -extensions v3_req

openssl rsa -in aaa.private.pem -passin pass:1234 -out aaa.key

openssl x509 -req -days 3650 -in aaa.cert.csr -out aaa.cert -signkey aaa.key -CA myCA.ca.cert -CAkey myCA.ca.key -CAcreateserial -extensions v3_req

openssl pkcs12 …

openssl digital-signature

10
推荐指数
0
解决办法
5684
查看次数

Docker 中的 Asp.Net-Core 应用程序通过 https

我们最近遇到了在 docker 中通过 https 为我们的容器化应用程序提供服务的要求。

按照 Microsoft 的指南,我能够从我的主机访问容器应用程序,并且一切正常,包括 SSL。

尝试从 docker 环境内部与应用程序通信时会发生问题。同一个容器/其他容器在尝试与应用程序通信时遇到无法验证证书的问题。在 Microsoft 的链接示例应用程序中也可以观察到这种行为。尝试从容器 ( curl https://localhost)内 curl 网站总是会产生:curl: (60) SSL certificate problem: unable to get local issuer certificate 这不是 curl 特有的问题,因为使用的调用HttpClient也会返回与 SSL 相关的错误。

想象它就像在 Windows 上一样,您只需将自签名 .pfx 添加到您的证书存储中,我创建了一个自签名证书, New-SelfSignedCertificate -DnsName "localhost", "dockerDnsName", "127.0.0.1" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date("2050-01-01")) 我需要在我的证书的 SubjectAlternateName 中同时使用 localhost 和 dockerDnsName 因为容器来自docker network 将使用该名称与容器通信。然后我将证书添加到我的主机的受信任根 CA。

我按照 Microsoft 的指南将 pfx 添加到容器,将 Kestrel 的环境变量设置为相关值(ASPNETCORE_Kestrel__Certificates__Default__PathASPNETCORE_Kestrel__Certificates__Default__Password)并启动容器。

从主机通过浏览器访问容器仍然有效。从容器内访问网站再次产生 SSL 错误。然后我将 .pfx 转换为容器内的 .crt …

c# ssl-certificate docker asp.net-core

10
推荐指数
2
解决办法
6397
查看次数

Docker 私有注册表:x509:由未知机构签名的证书

我正在尝试设置一个私有 docker 注册表,由反向 nginx 代理保护,该代理通过客户端证书验证用户。

我收到的错误是:

x509:由未知权威机构签署的证书

根据文档,您应该能够将证书添加到 /etc/docker/certs.d/ 中,我已经这样做了。Docker 似乎看到了证书的位置:

EBU[0015] 调用 POST /v1.24/images/create?fromImage=docker.squadwars.org%2Froster&tag=latest DEBU[0015] hostDir: /etc/docker/certs.d/docker.squadwars.org DEBU[0015]证书:/etc/docker/certs.d/docker.squadwars.org/client.cert DEBU[0015] 密钥:/etc/docker/certs.d/docker.squadwars.org/client.key DEBU[0015] crt: /etc/docker/certs.d/docker.squadwars.org/docker.squadwars.org.crt DEBU[0015] 主机目录:/etc/docker/certs.d/docker.squadwars.org DEBU[0015] 证书:/etc /docker/certs.d/docker.squadwars.org/client.cert DEBU[0015] 密钥:/etc/docker/certs.d/docker.squadwars.org/client.key DEBU[0015] crt:/etc/docker /certs.d/docker.squadwars.org/docker.squadwars.org.crt DEBU[0015] 尝试从https://docker.squadwars.org v2 WARN[0015] 获取 v2 时出错注册表:获取https://docker.squadwars.org/v2/:x509:由未知机构签名的证书错误 [0015] 错误后尝试拉取下一个端点:获取https://docker.squadwars.org/v2/:x509 :由未知机构签署的证书

我还尝试将证书文件从 mydomain.org 重命名为“ca.crt”,调试日志再次显示它看到了该文件,但没有任何效果。

我可以像这样使用curl:

curl --key client.key --cert client.cert https://docker.squadwars.org/

我还可以将 --cacert 选项添加到curl,无论哪种方式都有效。

docker 文档说,如果仍然有问题,您应该在操作系统级别添加证书。我已经按照说明这样做了:

(这可能就是为什么我不需要 -cacert 和curl,尽管我很困惑,因为我已经删除了证书,但curl仍然有效)

这让我发疯,任何帮助将不胜感激!

编辑:我忘了补充一点,最初我的证书 FQDN 是错误的,但现在是“docker.squadwars.org”

docker

9
推荐指数
2
解决办法
3万
查看次数

如何使浏览器信任localhost SSL证书?

虽然,有 类似 的问题,甚至是很好的 答案,他们要么不与本地主机过问具体而言,或询问有关一个特定的选项/溶液(自签署VS CA).

有什么选择?他们如何比较?我这样做吗?

openssl localhost ca self-signed ssl-certificate

9
推荐指数
1
解决办法
1万
查看次数

证书密钥的使用不足以进行尝试的操作。错误代码:SEC_ERROR_INADEQUATE_KEY_USAGE

我获得了 CA 签名服务器证书、链证书和私钥。从中,我使用开放 SSL 创建了密钥库并保护 Web 应用程序(server.xml 中的 HTTPS 配置)。但是,当我尝试通过浏览器(Firefox)访问网络应用程序时,出现以下错误。

安全连接失败
证书密钥使用不足以进行尝试的操作。错误代码:SEC_ERROR_INADEQUATE_KEY_USAGE

证书最初位于“.crt”中,我在将它们转换为“.cer”后也尝试过。尽管如此,该错误还是抱怨了一些有关“密钥使用”的问题。我运行以下命令来检查证书密钥的使用情况并附有屏幕截图。

openssl x509 -in ServerCertificate.cer -text -noout
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

以下是链证书;

在此输入图像描述

非常感谢您为解决此问题提供的帮助。[PS:在配置 CA 签名证书之前,我创建了自签名证书,并且该配置没有问题]

java firefox jboss keystore ssl-certificate

8
推荐指数
2
解决办法
3万
查看次数

创建自签名证书以测试localhost并让浏览器接受它

几周以来,我一直在努力让这个自签名证书在多个浏览器(Chrome,Firefox,Edge,IE)中运行.

我设法创建证书并将其安装为trusted root certificate但是在每个浏览器中我都必须绕过安全性才能拥有测​​试环境(带xampp的网站).

今天我专注于Edge和IE(没有成功),并且由于chrome的程序略有不同,我将尝试明天使用chrome.

我尝试创建一个新的,并以这种方式复制旧的(工作的):

要创建新证书,请以管理员身份打开powershell,然后:

New-SelfSignedCertificate -DnsName "127.0.0.1", "localhost" -CertStoreLocation "cert:\LocalMachine\My"
Run Code Online (Sandbox Code Playgroud)

如本说明书中所述导出.

要克隆,我使用了本文档中的示例.

然后我使用在"受信任的根证书"中导入证书certlm.msc.

但我得到的错误代码DLG_FLAGS_INVALID_CA,并 DLG_FLAGS_SEC_CERT_CN_INVALID在边缘和IE浏览器.

有人知道让这项工作的程序吗?
我一直在寻找网络而没有找到一个.

windows xampp ssl localhost self-signed

8
推荐指数
1
解决办法
6497
查看次数

X.509 证书中的专有名称长度限制

X509 证书DN的公共名称字段中,如 OID“2.5.4.3”的 ASN.1 表示法中所定义的,限制最多为 64 个字符。如果我们想要一个超过 64 个字符的通用名称,是否有任何转变?

openssl asn.1 x509

7
推荐指数
2
解决办法
8789
查看次数

SSL自签名证书上的Chrome(net :: ERR_CERT_COMMON_NAME_INVALID)错误

我使用自签名证书尝试建立一个网站在localhost Express.js在Windows 10.下面是Express.js服务器代码.

index.js

const https = require('https')
const express = require('express')
const app = express()
const fs = require('fs')
const path = require('path')

const httpsOptions = {
    cert: fs.readFileSync(path.resolve(__dirname, 'ssl', 'ca.crt')),
    key: fs.readFileSync(path.resolve(__dirname, 'ssl', 'ca.key'))
}

const router = require('./router')

app.use('/people', router)

https.createServer(httpsOptions, app)
    .listen(3443)
Run Code Online (Sandbox Code Playgroud)

我还将证书颁发机构ca.crt文件导入chrome,然后重新启动chrome.但我仍然在chrome上有错误,如下所示:

在此输入图像描述

请指导如何解决这个问题谢谢


我使用以下命令创建了密钥和证书.

# certificate authority key
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out ca.key

# server key
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out server.key

# certificate authority
openssl req …
Run Code Online (Sandbox Code Playgroud)

google-chrome ssl-certificate node.js express

7
推荐指数
1
解决办法
9902
查看次数