标签: ssl-certificate

无需主机名验证的 Node.js TLS 连接

我正在玩一群相互连接的“节点”,我真正关心的是它们彼此安全连接并且都经过身份验证。

为此,我认为 TLS 模块非常适合。我创建了一个 CA 并签署了一堆证书,每个节点一个。然后我遇到了一个问题,即现在针对节点连接的主机验证证书。

是否可以以某种方式禁用或解决通用名称验证?

这个设置有什么根本性的缺陷吗?

我是否正确,只要这些证书由我的 CA 签名,连接就应该是安全的,并且我确定只有我的节点可以连接?

必须签署锁定到主机名或 IP(或多个接口的情况下的多个)的证书似乎只是一种烦恼。我了解到验证主机的要求实际上不是 TLS 的一部分,而是 HTTPS - 从这个角度来看,默认情况下这样做可能是 Node.js 的错误?

ssl ssl-certificate node.js

2
推荐指数
1
解决办法
4616
查看次数

如何从证书生成密钥库?

我正在尝试创建一个密钥库,该密钥库的扩展名为现有证书文件中的 jks。使用我拥有的 (CERT) 证书文件,如何使用 Java 密钥工具创建密钥库 (JKS)?

java keytool ssl-certificate

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

如果 CURLOPT_SSLCERT 设置为同时包含证书和私钥的文件,我是否应该设置 CURLOPT_SSLKEY?

服务器给了我一个customer.pem我应该使用的客户端证书。如果我在文本编辑器中打开它,它包含客户端证书和客户端密钥:

-----BEGIN RSA PRIVATE KEY-----
here is private key
-----END RSA PRIVATE KEY-----

-----BEGIN CERTIFICATE-----
here is certificate
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

根据 PHP curl 文档,有两个单独的选项用于设置客户端证书和私有客户端密钥:

CURLOPT_SSLCERT The name of a file containing a PEM formatted certificate;
CURLOPT_SSLKEY  The name of a file containing a private SSL key;
Run Code Online (Sandbox Code Playgroud)

拥有customer.pem包含证书和私钥的文件 - 我可以仅设置CURLOPT_SSLCERT选项吗?CURL 会自动读取客户端密钥并正确使用它吗?就像下面这样:

$curl_opt = array(
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_SSL_VERIFYPEER => 1,
    CURLOPT_SSLCERT => $cert_dir . 'customer.pem',
    CURLOPT_CAINFO => $cert_dir . 'ca.crt',
    CURLOPT_SSLCERTPASSWD => $extra_settings['certificate_password'], …
Run Code Online (Sandbox Code Playgroud)

php ssl curl certificate ssl-certificate

2
推荐指数
1
解决办法
4939
查看次数

如何以编程方式禁用 Java LDAP JNDI LDAP API 中的证书主机名验证?

Java 8u181 引入了一项更改,在使用 Java JNDI LDAP API 连接到 LDAPS (TLS) 服务器时启用证书主机名验证。

请参阅: https: //www.oracle.com/technetwork/java/javase/8u181-relnotes-4479407.html#JDK-8200666

如何禁用此主机名验证,或者更好地指定自定义 javax.net.ssl.HostnameVerifier 类。Oracle 的文档仅指定了一个 Java 环境属性来禁用验证,但没有指出任何有问题地完成此操作的方法,这对于不(或不希望)能够更改其所在 JVM 的位/开关的环境至关重要继续运行。

这个问题: 如何禁用java 1.8.181版本的端点识别 提出了类似的问题,但解决方案是通过命令行更改java环境。我问如何在没有环境切换的情况下以编程方式完成它。

还有其他关于在 Java 中禁用其他类型 SSL 连接的主机名验证的问题/答案,但这些答案不适用于 JNDI LDAP API。

java ssl ldap ssl-certificate

2
推荐指数
1
解决办法
7589
查看次数

如何通过 Powershell 脚本设置 IIS 10.0 管理服务 SSL 证书以允许 Web 部署?

当我运行 Windows 更新并 sysprep 我的 Amazon EC2 实例 (Windows Server 2016) 时,我必须创建一个新的自签名证书。然后,我可以在管理服务屏幕中选择 SSL 证书(我将其命名为 WebDeploy)。我已经弄清楚如何从 Windows Powershell 创建 SSL 证书,但我必须从屏幕截图的下拉列表中选择 SSL 证书。如何从命令行设置 SSL 证书?

IIS 管理服务屏幕截图

这是我尝试过的方法,但没有成功 - 我能够避免错误,但如果我不进入 IIS 管理器屏幕并手动选择下拉列表,它们都不允许 WebDeploy 工作。

Stop-Service wmsvc
$strGuid = New-Guid
Import-Module WebAdministration
Remove-Item -Path IIS:\SslBindings\0.0.0.0!8172
Get-Item -Path  "cert:\localmachine\my\$strHashThumbprint" | New-Item -Path 
IIS:\SslBindings\0.0.0.0!8172 
Start-Service wmsvc
Run Code Online (Sandbox Code Playgroud)

而且,这不起作用:

Stop-Service wmsvc
netsh http delete sslcert ipport=0.0.0.0:8172
netsh http add sslcert ipport=0.0.0.0:8172 certhash=$strHashThumbprint appid=`{$strGuid`} certstorename="MY" sslctlstorename="MY"
Start-Service wmsvc
Run Code Online (Sandbox Code Playgroud)

最后,这不起作用:

Stop-Service wmsvc
Add-NetIPHttpsCertBinding -IpPort "0.0.0.0:8172" -CertificateHash $strHash -CertificateStoreName "My" -ApplicationId …
Run Code Online (Sandbox Code Playgroud)

iis powershell ssl-certificate webdeploy

2
推荐指数
1
解决办法
4746
查看次数

在服务器端获取 SSL 错误 SSL_ERROR_RX_RECORD_TOO_LONG

我用 C# 编写了自己的网络服务器。

我总是在端口 443 上的新 IP 中为我的网站建立 SSL 证书。并且始终工作正常。

但这一次我得到了这个错误:

安全连接失败

连接 www.sayehrooshan-co.com 时发生错误。SSL 收到的记录超出了最大允许长度。错误代码:

SSL_ERROR_RX_RECORD_TOO_LONG

由于无法验证接收到的数据的真实性,因此无法显示您尝试查看的页面。请联系网站所有者以告知他们此问题。

这是页面地址:

https://www.sayehrooshan-co.com

这是我的代码始终与其他站点的 .pfx 文件一起使用:

sslstream = new SslStream(new NetworkStream(mySocket, false), false);
//commented for nedaye arzhang
X509Certificate2 serverCertificate = new X509Certificate2(Path, Password);
//X509Certificate2 serverCertificate = new X509Certificate2("www_nedaye-arzhang_com.cer");                           

sslstream.AuthenticateAsServer(serverCertificate, false, System.Security.Authentication.SslProtocols.Tls, true);
Run Code Online (Sandbox Code Playgroud)

搜索了很多但没有得到任何解决方案有人知道吗?

c# ssl ssl-certificate

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

本地 Laradock Nginx 项目上的 SSL 证书

我需要你的帮助来在我的本地计算机上使用 Nginx 和 SSL“假”证书设置我的 Laradock(带有 Docker)。

我不知道如何设置它。请你帮助我好吗?

谢谢

ssl nginx ssl-certificate docker laradock

2
推荐指数
1
解决办法
7804
查看次数

续订了我的 SSL 证书,但在 AWS EC2 服务器上的 nodejs 中获取 UNABLE_TO_VERIFY_LEAF_SIGNATURE

我在 AWS EC2 服务器上有一个 nodejs/express api,带有每 3 个月由 Let's encrypt 生成的 ssl 证书。自动续订未开启,我们在尝试续订之前让它过期,但在续订后我们收到一条错误消息:

无法验证第一个证书

或者

UNABLE_TO_VERIFY_LEAF_SIGNATURE

取决于我们测试的内容。

我们使用Certbot以下命令(而不是$ certbot renew)进行更新:

$ sudo certbot certonly --dns-route53 -d *.example.com -d example.com --server https://acme-v02.api.letsencrypt.org/directory
Run Code Online (Sandbox Code Playgroud)

证书按预期生成,有效期为 3 个月后。

对发生的事情有什么想法吗?我已经尝试了在 SO 和其他地方可以找到的大部分内容,但没有任何效果。

PS 服务器和我相处得不太好:/(我做移动应用程序开发)所以假设我在回复时什么都不知道:D

amazon-ec2 ssl-certificate node.js lets-encrypt certbot

2
推荐指数
1
解决办法
1461
查看次数

apache nifi 中的 SSL 上下文服务

大家早上好,我做了一个 apache Nifi 项目,在其中使用 GetHttp 和 PostHttp。问题是发生了错误:错误捕获 我在谷歌上查找了它,但我不明白到底该怎么做?什么是 SSL 证书?如何添加呢? 配置控制器服务

ssl ssl-certificate apache-nifi

2
推荐指数
1
解决办法
8895
查看次数

如何使用 Postgres 数据库 URL 字符串传递证书路径以进行 SSL 连接

我正在尝试通过 SSL 为我的 Spring 启动应用程序保护与 AWS RDS 实例的连接。我查看了几个博客和官方文档,并相应地修改了我的连接字符串以包含与 SSL 连接相关的某些参数。

我将我的证书放置在资源中的证书文件夹中。以下是我尝试传递证书路径的方法:

jdbc:postgresql://myamazondomain.rds.amazonaws.com:5432/db_name?sslmode=verify-full&sslrootcert=/cert/rds-ca-cert_name.p12&password=my_passwrord
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

jdbc:postgresql://myamazondomain.rds.amazonaws.com:5432/db_name?sslmode=verify-full&sslrootcert=/src/main/resources/cert/rds-ca-cert_name.p12&password=mypassword
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从 ECS 容器连接到 RDS 时,收到以下错误:

ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
org.postgresql.util.PSQLException: Could not open SSL root certificate file /cert/rds-ca-cert_name.p12.

at org.postgresql.ssl.LibPQFactory.<init>(LibPQFactory.java:120)

at org.postgresql.core.SocketFactoryFactory.getSslSocketFactory(SocketFactoryFactory.java:61)

at org.postgresql.ssl.MakeSSL.convert(MakeSSL.java:33)

at org.postgresql.core.v3.ConnectionFactoryImpl.enableSSL(ConnectionFactoryImpl.java:435)

at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:94)

at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)

at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)

at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)

at org.postgresql.Driver.makeConnection(Driver.java:454)
Run Code Online (Sandbox Code Playgroud)

有人可以建议这里有什么错误吗?将类路径中存储的证书传递给 jdbc 连接字符串的正确方法是什么?

postgresql ssl jdbc ssl-certificate amazon-rds

2
推荐指数
1
解决办法
8019
查看次数