标签: ssl-certificate

如何将 SSL 证书添加到 java 17 的 jvm 中

我需要将 SSL 证书文件添加到 JVM 信任存储区。我安装了 java oracle 8 和 java attendium 17。

通过此链接,我已成功添加 java 8 的证书,并且可以使用该证书进行通信。这是命令

keytool -importcert -alias startssl -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -file ca.crt
Run Code Online (Sandbox Code Playgroud)

但现在我也需要将其添加到 java 17 中。使用相同的命令,我无法添加证书。我发现对于 java 17JAVA_HOME没有目录jre/lib/security,而是有conf/security目录。所以我将命令更改为这个

keytool -importcert -alias startssl -keystore $JAVA_HOME/conf/security/cacerts -storepass changeit -file ca.crt
Run Code Online (Sandbox Code Playgroud)

此命令在文件夹cacerts下生成文件security,但我仍然收到错误。在添加证书之前,我在 java 8 中遇到了同样的错误。我应该把这个cacertsjava 17 文件放在哪里?

Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at …
Run Code Online (Sandbox Code Playgroud)

java ssl jvm ssl-certificate java-17

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

如何使用 certbot 生成密钥类型 RSA/ECDSA 加密的证书?

Let's Encrypt Certbot 默认密钥类型已更改为最新版本 2.0.0 的 ECDSA。如何指定生成RSA或ECDSA的密钥类型?

rsa ssl-certificate ecdsa lets-encrypt certbot

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

在企业防火墙后面的 docker 中 npm UNABLE_TO_GET_ISSUER_CERT_LOCALLY

我在 Dockerfile 中以 root 身份运行 npm 时遇到错误。

 > [runner  5/10] RUN npm install --global pm2:
#0 71.79 npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY
Run Code Online (Sandbox Code Playgroud)

我们有一个无法关闭的防病毒/企业防火墙,它可以替代 SSL 证书来检查流量。

我的问题是,因为npm install --global pm2以 root 身份运行,所以它不尊重export NODE_EXTRA_CA_CERTS=/path/to/my-cacert.crt.

我尝试过RUN npm config set cafile /path/to/my-cacert.crt,但由于某种原因也不起作用。

UNABLE_TO_GET_ISSUER_CERT_LOCALLY在 docker 容器中以 root 身份运行 npm 时如何修复?

此 dockerfile 重现了该问题:

FROM node:alpine AS deps

COPY my.crt /usr/local/share/ca-certificates/
RUN cat /usr/local/share/ca-certificates/my.crt >>/etc/ssl/certs/ca-certificates.crt

RUN npm install --global pm2
Run Code Online (Sandbox Code Playgroud)

ssl-certificate npm docker

6
推荐指数
1
解决办法
1857
查看次数

我是否必须获得有效的 SSL 证书才能使 WebTranport 服务器示例正常工作?

我尝试了几个 WebTranport 服务器示例,但未能与 Chrome 111 建立 WebTransport 连接。

服务器示例:

客户:

错误是

净::ERR_CONNECTION_RESET。
WebTransportError:打开握手失败。

或者

net::ERR_QUIC_PROTOCOL_ERROR.QUIC_TLS_CERTIFICATE_UNKNOWN(TLS 握手失败 (ENCRYPTION_HANDSHAKE) 46:证书未知)。
WebTransportError:打开握手失败。

为了使自签名 SSL 证书正常工作,我尝试使用 Chrome 命令行参数

--user-data-dir=chromequicdata --origin-to-force-quic-on=localhost:4433 --ignore-certificate-errors-spki-list=Gi/HIwdiMcPZo2KBjnstF5kQdLI5bPrYJ8i3Vi6Ybck=
Run Code Online (Sandbox Code Playgroud)

或将服务器证书哈希作为 WebTransport 构造函数选项传递

--user-data-dir=chromequicdata --origin-to-force-quic-on=localhost:4433 --ignore-certificate-errors-spki-list=Gi/HIwdiMcPZo2KBjnstF5kQdLI5bPrYJ8i3Vi6Ybck=
Run Code Online (Sandbox Code Playgroud)

我是否必须获得有效的 SSL 证书才能使这些服务器示例正常工作?

ssl-certificate self-signed-certificate webtransport

6
推荐指数
1
解决办法
1038
查看次数

Android SSL错误:证书不受信任......有时候

在我正在处理的应用程序中,我必须与Web服务器建立HTTPS连接.我得到证书不可信任的错误,在咨询了stackoverflow之后,我发现了这篇博文:http: //blog.antoine.li/index.php/2010/10/android-trusting-ssl-certificates/

似乎此服务器的CA未包含在Android的默认存储中.简而言之,我下载了所有证书,使用BKS提供程序创建了一个密钥库,导入了密钥,将密钥库导入到我的项目中,继承了DefaultHttpClient类以强制它使用我的密钥库.

按照博客中的步骤操作后,它在模拟器上完美运行.但是,当我在设备上测试时,它会间歇性地失败.我想我已经孤立了一个模式.似乎经过一段时间后我尝试建立HTTPS连接,它将失败.然后,如果我再次尝试相同的连接,它将成功.如果我等待一段时间然后再试一次,它会在第一次失败,成功重复尝试.我可以通过多次尝试失败来修复它,但我想知道发生了什么.行为表明某种缓存,但我不知道如何找到它或修改它的行为.有没有人对正在发生的事情有任何建议或知道我做错了什么?任何帮助,将不胜感激.

android ssl-certificate

5
推荐指数
1
解决办法
8551
查看次数

使用带有SSL的ODBC(5.1)进行MySQL连接

我们有一个客户端应用程序通过ODBC连接器连接到我们的在线MySQL数据库(5.1.44-community-log)(该服务器是托管*专用网络服务器).这非常好用.但是,我无法使用SSL工作.这是我到目前为止所做的:

1. MySQL服务器

我有服务器管理器*使用SSL设置MySQL,这是'证明':

mysql> SHOW VARIABLES LIKE '%ssl%';
Run Code Online (Sandbox Code Playgroud)

结果是这个回应:

+---------------+---------------------------------+
| Variable_name | Value                           |
+---------------+---------------------------------+
| have_openssl  | YES                             |
| have_ssl      | YES                             |
| ssl_ca        | /***/mysql-cert/ca-cert.pem     |
| ssl_capath    |                                 |
| ssl_cert      | /***/mysql-cert/server-cert.pem |
| ssl_cipher    |                                 |
| ssl_key       | /***/mysql-cert/server-key.pem  |
+---------------+---------------------------------+
Run Code Online (Sandbox Code Playgroud)

问题:服务器配置正确吗?我猜它是......

2.证书

我已经购买了真正的证书(通过我的服务器管理器).它们位于上面显示的目录中.我还从该目录下载了client-cert.pem,client-key.pem和ca-cert.pem.

3.具有REQUIRE [SSL | X509]的MySQL用户

我创建了一个新用户,然后使用SSL从任何位置(用于测试)授予它访问权限:

GRANT USAGE ON *.* TO 'somevaliduser'@'%' IDENTIFIED BY PASSWORD 'somevalidpass' REQUIRE X509 
Run Code Online (Sandbox Code Playgroud)

4. ODBC客户端

我(刚下载并安装):mysql-connector-odbc-5.1.8-winx64.msi(64位)因为我的机器是64位Windows 7机器(所以这不是什么错误).

我创建了一个像这样配置它的用户DSN(没有在选项卡上设置选项),这表明它成功连接到服务器(但不使用 …

mysql ssl odbc mysql-management ssl-certificate

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

是否有正当理由忽略空/无效SSL证书(处理付款处理时)?

所以我从银联获得了这个与中国的电子商务项目的dll,并被要求审查.把它扔进ILSpy后,我忍不住注意到以下方法:

private static bool RemoteCertificateCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
     return true;
}
Run Code Online (Sandbox Code Playgroud)

现在,据我所知,这种回调的目的是允许无效或无效的SSL证书 - 我自己也为单元测试添加了类似的支持.

(这种事情让我对CHR政府的干预非常怀疑,允许对交易进行有意的中间人监控.)

支付处理器是否有合理的理由支持空/无效证书?

ssl ssl-certificate e-commerce payment-processing

5
推荐指数
1
解决办法
94
查看次数

获取sun.security.validator.ValidatorException:PKIX路径构建失败错误

我的应用程序调用Web服务以验证该Web服务中的特定用户.该Web服务具有自己的自签名CA证书.我正在使用POST REST调用该服务来通过传递用户的用户名'和'密码'来验证用户,但后来我收到此错误..

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径

I have created a keystore and imported that servers certificate into that it. I am using that keystore in my application to trust the web service. Importing the certificate into JDK's cacerts can resolve my problem but this application can migrate to other servers according to clients requirement. So importing that certificate into jdk will not resolve the problem because that certificate has to be imported on that server too. So I have to trust it through …

java rest webservice-client ssl-certificate

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

Android SSL错误握手失败

我有一个Android应用程序,可以在我的家庭网络上工作,并没有这些握手错误.然而,当将此应用程序发送到我的客户端并通过他们的wifi网络测试时,我得到这些日志.

E/chromium(15135): external/chromium/net/socket/ssl_client_socket_openssl.cc:792: [1211/175912:ERROR:ssl_client_socket_openssl.cc(792)] handshake failed; returned 0, SSL error code 5, net_error -107
W/chromium(15135): external/chromium/net/http/http_stream_factory_impl_job.cc:865: [1211/175912:WARNING:http_stream_factory_impl_job.cc(865)] Falling back to SSLv3 because host is TLS intolerant: 
Run Code Online (Sandbox Code Playgroud)

我在我的应用程序内部的android webview中加载了https URLS.除了这些错误,我没有其他信息.你们有没有想过为什么会在特定网络上发生这种情况,我现在真的没有想法.

ssl android ssl-certificate

5
推荐指数
1
解决办法
2983
查看次数

如何从第三方node.js服务器验证Game Center用户

我一直在尝试使用新的iOS Game Center GKPlayer方法,generateIdentityVerificationSignatureWithCompletionHandler,这样我们就可以安全地依赖Game Center凭据进行身份验证.我们使用Node.js作为后端服务器,我一直在尝试验证签名,但无济于事.

以下是我所拥有的服务器端代码 - 如果有人可以查看缺少的内容,那将不胜感激.问题在这里有所回答:如何在我的'第三方服务器'上验证GKLocalPlayer?,但Node.js没有专门解决.请注意,下面的代码不能确保具有签名权限的证书的有效性(尚未).

    //Client sends the payload below
    //json.playerId - UTF-8 string
    //json.bundleId - UTF-8 string
    //json.timestamp - Hex string
    //json.salt - base64 encoded
    //json.publicKeyURL - UTF-8 string
    //json.signature - base64 encoded
    var json = JSON.parse(req.body);
    console.log(JSON.stringify(json));
    //get the certificate
    getCertificate(json.publicKeyURL, function(cert){
        //read file from fs for now, since getCertificate returns cert in DER format
        fs = require('fs');
        fs.readFile('/gc-sb.pem', 'utf8', function (err,data) {
            if (err) {
                console.log(err);
            } else {
                console.log(data); …
Run Code Online (Sandbox Code Playgroud)

authentication ssl-certificate node.js ios game-center

5
推荐指数
1
解决办法
2602
查看次数