在我们的测试环境中,我们使用我们公司签署的SSL连接到另一台服务器.每次建立连接时,nodejs都会抛出 UNABLE_TO_VERIFY_LEAF_SIGNATURE.我通过设置rejectUnauthorized:false找到了变通方法,但在我们的例子中这不是适用的.
证书将添加到/ etc/ssl/certs,并使用环境变量SSL_CERT_DIR进行测试,使其成为/ etc/ssl和/ etc/ssl/certs,但没有结果.
此外,最好在我们的文件中添加证书并将其添加到每个请求中.
或者,只有从特定域(即您作为CA身份验证的一部分使用的域)下载时,已签名的applet 才会与之关联并被视为已签名?
我的情况:我创建了一个applet,我提供下载作为工具,以便其他人可以在他们的网站上使用它.人们不会在我的网站上使用 applet,而是将其下载为zip并将其托管在他们的网站上.(显然,我的应用程序针对开发人员和其他HTML精明的人).到目前为止,applet已经未签名,但是由于Oracle基本上已经使用上次更新杀死了未签名的applet,我正在考虑签名.但我不想经历签名的麻烦和费用,只是发现签名仅在我的网站上使用applet而不是其他人时才有效.
编辑澄清:我不打算自签.我打算用CA.
我正在开发一个Android应用程序,只有当服务器具有CA颁发的特定证书(例如:GoDaddy)时才需要进行SSL握手.我在Android开发者网站上引用了这些文档,但它只是说验证一个不受Android信任的自签名证书或证书.在我的情况下,我应该获得客户端证书并将其添加到我的密钥库.我正在使用apache HttpClient为我的网络服务请求.任何帮助深表感谢.
git clone
由于这个错误,我一直无法得到任何github仓库
致命:无法访问'github_url':服务器证书验证失败.CAfile:/home/ubuntu/.ssh/rel3_dodroot_2048.crt CRLFile:none
我注意到其他一些人有类似的错误,但.ssl
文件夹中的证书.我从来没有见过任何人在.ssh中的证书有这个问题,我不知道如何解决它.
环境:
我正在为开发服务器生成一个自签名证书,但我需要它才能被信任才能使用一些将使用该证书的工具.
这是我尝试过的:
openssl req -newkey rsa:2048 -x509 -nodes -keyout /etc/ssl/private/server.key -new -out /etc/ssl/certs/server.crt -reqexts v3_req -extensions v3_req -config /vagrant/openssl.san.conf -sha256 -days 1825
ln --symbolic /etc/ssl/certs/server.crt /etc/pki/ca-trust/source/anchors/server.crt
update-ca-trust extract
Run Code Online (Sandbox Code Playgroud)
在尝试运行update-ca-trust命令之后,我尝试使用grepping ca-bundle.crt
文件获取内容,server.crt
但它不在那里.
我也尝试过复制文件而不是制作符号链接,但这也不起作用.
证书是正确创建的,适用于Apache,但它会产生自签名错误:
Run Code Online (Sandbox Code Playgroud)[vagrant@localhost certs]$ curl --head https://localhost/ curl: (60) Issuer certificate is invalid. More details here: http://curl.haxx.se/docs/sslcerts.html
如何在服务器的命令行上信任我的自签名证书?
我的软件使用 HTTPS 连接连接到 Dropbox 以检索一些敏感数据。
我想固定证书颁发机构以防止中间人攻击。
到目前为止,我有以下代码:
static bool VerifyServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
try
{
var currentCaPublicKey = chain.ChainElements.Cast<X509ChainElement>().Last().Certificate.GetPublicKeyString();
var caPublicKeys = new List<string>(){"00ad0e15cee443805cb187f3b760f97112a5aedc269488aaf4cef520392858600cf880daa9159532613cb5b128848a8adc9f0a0c83177a8f90ac8ae779535c31842af60f98323676ccdedd3ca8a2ef6afb21f25261df9f20d71fe2b1d9fe1864d2125b5ff9581835bc47cda136f96b7fd4b0383ec11bc38c33d9d82f18fe280fb3a783d6c36e44c061359616fe599c8b766dd7f1a24b0d2bff0b72da9e60d08e9035c678558720a1cfe56d0ac8497c3198336c22e987d0325aa2ba138211ed39179d993a72a1e6faa4d9d5173175ae857d22ae3f014686f62879c8b1dae45717c47e1c0eb0b492a656b3bdb297edaaa7f0b7c5a83f9516d0ffa196eb085f18774f"};
return caPublicKeys.Any(s => currentCaPublicKey.Equals(s));
}
catch (Exception ex)
{
Console.WriteLine(ex);
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我不知道我是否在检查正确的东西。一些加密专家的任何建议将不胜感激。
当我尝试拉取 docker 镜像时出现错误。我们已经设置了代理,并且在我们的组织中我们有显式代理,因此要访问外部服务器我们不能不设置它。
[root@DX2821 city]# docker pull hellow-world
Run Code Online (Sandbox Code Playgroud)
使用默认标签:最新
来自守护进程的错误响应:
获取https://registry-1.docker.io/v2/ : x509: 由未知机构签名的证书
我有一个运行着 traefik 的 docker swarm,我希望能够在 https 中为 Grafana 提供服务,而目前在 http 中。
我尝试使用以下 traefik compose 配置:
version: "3.6"
services:
traefik:
image: traefik
command:
- --defaultentrypoints=http,https
- --docker
- --docker.swarmMode
- --docker.exposedByDefault=false
- --docker.domain=sdb.it
- --docker.watch
- --entryPoints=Name:http Address::80
- --entryPoints=Name:https Address::443 clientCA:/etc/ssl/certs/rootca.crt TLS:/etc/ssl/certs/sonarqube.crt,/etc/ssl/certs/sonarqube.key;/etc/ssl/certs/sdbit-grafana.pem,/etc/ssl/certs/sdbit-grafana.key
- --rootcas=/etc/ssl/certs/rootca.crt
- --insecureskipverify
- --logLevel=DEBUG
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 80:80
- 443:443
networks:
- traefik
secrets:
- source: sdbit-sonarqube-docker.sdb.it.crt
target: /etc/ssl/certs/sonarqube.crt
mode: 644
- source: sdbit-sonarqube-docker.sdb.it.key
target: /etc/ssl/certs/sonarqube.key
mode: 644
- source: sdbit-grafana.sdb.it.pem
target: /etc/ssl/certs/sdbit-grafana.pem
mode: …
Run Code Online (Sandbox Code Playgroud) 我当前的网络没有部署在 Kubernetes 上的 TLS。目前,我们正在从 Kafka (1.4.0) 迁移到 RAFT(1.4.4)。Kubernetes 不需要 TLS。
目前,当我更改配置块中的共识并将其发送给订购者时,出现以下错误。
2019-12-09 15:38:02.269 UTC [orderer.common.server] initializeClusterClientConfig -> PANI 208 TLS 需要运行 kafka 类型的排序节点。恐慌:运行 kafka 类型的排序节点需要 TLS。
默认情况下unique_subject
设置为yes
,这会阻止您使用相同的专有名称签署多个证书。尝试签署此类证书将导致出现以下错误消息。
failed to update database
TXT_DB error number 2
Run Code Online (Sandbox Code Playgroud)
然而,允许重复 DN 有一个明确的用例,即为依赖方颁发具有延长到期日期的证书。例如,一个网站的证书需要在几个月后刷新([1]中已经提出了类似的论点)。在不更改设置的情况下,如果吊销现有证书,则只能颁发具有相同 dn 的新证书。但您可能想给网站所有者一段宽限期,在此期间两个证书都有效。我遇到的唯一其他选择是更改 dn 中与证书不太相关的内容(例如 OU)[2]。
openssl 文档 [3] 有一个条目,unique_subject
其中建议选择默认值以便与旧版本兼容。该页面还提到应设置此值no
以使 ca 翻转更容易。这对我来说值no
是完全可以的,也许应该是默认值。
可以找到对此属性的许多参考,并且通常建议将此值设置为no
(在 openssl.cnf 和 index.txt.attr 文件中)[1、2、3、4,等等]。我只发现一个地方有人建议将其保留yes
或至少不太关心其实际价值[5]。但是,在那条线索中,只给出了一个空白的声明:
For the use case of a VPN, as EasyRSA was originally intended, the current setting is
best.
Run Code Online (Sandbox Code Playgroud)
是吗?为什么?
我了解该选项的作用以及如何使用它。我找不到的是早期违约的合理性yes
。
openssl ca 是否尝试使用此默认值解决一些安全问题?
颁发两个具有相同 dn 的证书有哪些风险?
设置时有哪些需要遵循的做法吗unique_subject=no
?
是否有充分的理由将该值保留为默认设置?
简而言之,是否有支持阻止具有相同 dn 的多个有效证书的论点?
[1] https://github.com/OpenVPN/easy-rsa/issues/40#issuecomment-56191531
[2] https://serverfault.com/a/810608 …