标签: ssl-certificate

NodeJS https请求中的证书问题

我在发出 https get 请求时出现以下错误

{ Error: write EPROTO 101057795:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:openssl\ssl\s23_clnt.c:802:
at _errnoException (util.js:992:11)
at WriteWrap.afterWrite [as oncomplete] (net.js:864:14) code: 'EPROTO', errno: 'EPROTO', syscall: 'write' }
Run Code Online (Sandbox Code Playgroud)

我正在尝试向不需要代理的公司内部资源发出请求。

const request = require('request')
var token= myToken
request({
  method: 'post',
  url: 'https://myURL',
  data: {
    myData
  },
  headers: { 'Authorization': 'Bearer myToken' },
  agentOptions: {
    rejectUnauthorized: false,
  },
}, function (error, response, body) {
if(error){
  console.log('Error: ', error)
} else {
  console.log(body)
}
})
Run Code Online (Sandbox Code Playgroud)

我的 .npmrc 中也有 strict-ssl=false 。

我注意到我可以毫无问题地进行相同的调用curl。

curl -k1 …
Run Code Online (Sandbox Code Playgroud)

https ssl-certificate node.js

0
推荐指数
1
解决办法
3590
查看次数

如何使用 powershell 根据 dns 名称查找和删除以前创建的证书?

我可以使用 PowerShell 创建自签名证书:

\n\n
$cert = New-SelfSignedCertificate \xe2\x80\x93DnsName www.test.com -CertStoreLocation \xe2\x80\x9ccert:\\LocalMachine\\My\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

因为这是一个自动化测试场景,所以我必须允许多次运行。下次我(这是一个完全独立的会话)想找到所有 dns 名称为 www.test.com 的证书,并完全擦除它们。它可能不止一个,当然还有不同的指纹等。

\n\n

不幸的是,我找不到任何删除证书的 PowerShell 命令。我想我应该基于 dns 进行查询,然后在循环中删除...

\n\n

问题

\n\n

这个任务可以完全在 Powershell 中解决吗?(删除具有给定 DNS 名称的所有证书)

\n

powershell ssl-certificate

0
推荐指数
1
解决办法
887
查看次数

如何从 .jks 获取 .crt 文件

我需要配置我的网站 SSL。我有以下文件:file.csr 和 file.jks

我需要以下文件来启用我的网站的 SSL:file.crt、file.key 和 keystore

我通过互联网进行了搜索,但没有找到任何帮助。谁能告诉我如何使用我已有的文件获取这些文件?

我尝试了多种转换选项,但没有任何效果。

<Connector port="8442" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
keystoreFile="/conf/keys/server/keystore"
               keystorePass="CHANGEME"/>
Run Code Online (Sandbox Code Playgroud)

java https tomcat jks ssl-certificate

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

如何解决机器人框架中测试自动化的 ssl 证书错误

在通过机器人框架运行自动化测试时,我的 Web 应用程序出现 ssl 证书错误。我在下面的代码中尝试了不同的 chrome 选项,但没有一个在没有布尔值的情况下也能正常工作。

${list} =  Create List      --unsafely-treat-insecure-origin-as-secure=True
${args} =  Create Dictionary     args=${list}
${desired caps} =     Create Dictionary     chromeOptions=${args}
open browser  about:blank          ${BROWSER}  desired_capabilities=${desired_caps}
Run Code Online (Sandbox Code Playgroud)

先感谢您

ssl-certificate python-3.x robotframework

0
推荐指数
1
解决办法
6792
查看次数

webscoket 连接成功后如何发送消息到特定的 URI?

我有一个安全的 websocket 服务器在 localhost:443/server-demo (jetty websocket 服务器)上运行。现在我正在编写一个可以与websocket服务器通信的go客户端。我可以使用正确的证书连接到 websocket 服务器。这是示例代码。

package main
import (
    "crypto/tls"
    "crypto/x509"
    "fmt"
    "io"
    "log"
)
func main() {
    cert, err := tls.LoadX509KeyPair("nifi-1.10.0-bin/nifi-1.10.0/extras/gen-certs/certs/admin.pem", "nifi-1.10.0-bin/nifi-1.10.0/extras/gen-certs/certs/admin-key.pem")
    if err != nil {
        log.Fatalf("server: loadkeys: %s", err)
    }
    config := tls.Config{Certificates: []tls.Certificate{cert}, InsecureSkipVerify: true}
    conn, err := tls.Dial("tcp", "127.0.0.1:443", &config)
    if err != nil {
        log.Fatalf("client: dial: %s", err)
    }
    defer conn.Close()
    log.Println("client: connected to: ", conn.RemoteAddr())
    state := conn.ConnectionState() 
    for _, v := range state.PeerCertificates {
        fmt.Println(x509.MarshalPKIXPublicKey(v.PublicKey))
        fmt.Println(v.Subject)
    }
    log.Println("client: …
Run Code Online (Sandbox Code Playgroud)

client-server ssl-certificate go websocket gorilla

0
推荐指数
1
解决办法
271
查看次数

Windows 7 中的错误:请求已中止:无法创建 SSL/TLS 安全通道

我遇到以下问题:
如果我使用网络浏览器打开地址https://info.protectiacivila.ro/test.php ,则显示文本“Hello!” 被展示。

我在 Windows 窗体应用程序中编写了以下单击事件处理程序(目标:.NET 4.5):

 private void button1_Click(object sender, EventArgs e) {
  Uri uri = new Uri("https://info.protectiacivila.ro/test.php");
  ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
  HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
  try {
    string strResponse;
    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) {
      StreamReader reader = new StreamReader(response.GetResponseStream());
      strResponse = reader.ReadToEnd();
    }
    MessageBox.Show(strResponse);
  } catch (Exception ex) {
    MessageBox.Show(ex.Message);
  }
}
Run Code Online (Sandbox Code Playgroud)

上面的方法应该显示消息“Hello!”
它在Windows 10中完美运行。这意味着SSL证书是有效的。

但是,在 Windows 7 中,它会显示错误消息:
请求已中止:无法创建 SSL/TLS 安全通道。

我该怎么做才能使上述方法在 Windows 7 中也起作用?

谢谢

c# httpwebrequest ssl-certificate windows-7 winforms

0
推荐指数
1
解决办法
3393
查看次数

我可以在没有 https 连接的情况下使用 Mutual/2 Way SSL 吗?

我对这个 SSL 配置很陌生。我正在努力在 Springboot 应用程序上添加 2 路 ssl 配置。我在网上浏览了很多关于这个实现的代码片段。

我的目标服务器端点 - https://endpoint.com/path/to/service是安全的,我可以对其进行 REST 调用。

如果我设置我的 application.yml:

server:
  port: 9001
  ssl:
    enabled: true
    client-auth: need
    key-store: classpath:KEYSTORE.pfx
    key-store-password: password
    key-alias: aliasname
    key-store-type: PKCS12
    trust-store: classpath:TRUSTSTORE.p12
    trust-store-password: password
    trust-store-type: PKCS12
Run Code Online (Sandbox Code Playgroud)

我的应用程序在https ://localhost:9001上运行。

TRUSTSTORE.p12 包含服务器的公共证书和 CA 证书。

通过此设置,我可以使用 RestTemplate 配置从服务器获取响应。当我提供另一个没有我的服务器公共证书的 TrustStore 时,它​​无法建立连接 - 预期的行为。

但是当我禁用 SSL 时:

server:
      port: 9001
      ssl:
        enabled: false
Run Code Online (Sandbox Code Playgroud)

我的应用程序在 HTTP//:localhost:9001 上运行。

我仍然能够使用 SSL 上下文中可用的信任库和密钥库进行相互身份验证吗?我仍然可以使用上面的 yml 配置和下面的代码来验证服务器的公共证书吗?

    // KeyStore and TrustStore
            keyStore = KeyStore.getInstance("pkcs12");
            ClassPathResource classPathResource = new …
Run Code Online (Sandbox Code Playgroud)

ssl ssl-certificate spring-boot

0
推荐指数
1
解决办法
159
查看次数

ASP.NET Core (3.1) 在自托管 (Kestrel) 应用程序中重新使用 IIS 证书

我有一个 ASP.NET Core (3.1) 应用程序,它是自托管的并作为服务运行。我想为其公开一个 HTTPS 端点。在同一台计算机上安装了一个 IIS,其中已配置了 https 和证书: 在此输入图像描述

该证书似乎存储在本地计算机证书存储中: 证书管理器

我还可以通过 powershell 列出它:

> get-childitem cert:\LocalMachine\My\ | format-table NotAfter, Subject

NotAfter            Subject
--------            -------
27.10.2023 07:38:45 <irrelevant>
08.03.2022 09:52:44 CN=a7642e58-2cdf-4e9b-a277-60fad84d7c64, DC=3336d6b0-b132-47ee-a49b-3ab470a5336e
23.02.2022 21:51:53 CN=a7642e58-2cdf-4e9b-a277-60fad84d7c64, DC=3336d6b0-b132-47ee-a49b-3ab470a5336e
27.10.2031 06:48:06 CN=a7642e58-2cdf-4e9b-a277-60fad84d7c64
26.10.2024 10:41:03 E=****.com, CN=****, OU=IT, O=****, L=****, S=***, C=**
Run Code Online (Sandbox Code Playgroud)

我更改了 appsettings.json 以使用商店中的证书:

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Kestrel": {
    "EndPoints": {
      "Http": {
        "Url": "http://*:5000"
      },
      "HttpsDefaultCert": {
        "Url": "https://*:5001"
      } …
Run Code Online (Sandbox Code Playgroud)

ssl ssl-certificate kestrel-http-server asp.net-core .net-core-3.1

0
推荐指数
1
解决办法
1507
查看次数

根据各种 CRL 文件验证 SSL 证书

我获得了多个证书文件,例如“cert1.crt”、“cert2.crt”等,以及多个 CRL 列表、“list1.crl”、“list2.crl”等。没有提供 rootCA 或任何其他类型的文件。我的任务是找出哪些证书没有被吊销。尽管广泛搜索“验证”命令,但我未能找到任何至少可以为我提供线索的命令或过程。最后,我设法做了一些 bash 脚本特技飞行,这让我可以手动测试每个 .crt 文件的序列号

for((i=1;i<9;i++))
do
echo $i
fileIn="crl"$i".crl"
#serial is manually c/p from each .crt file
serial="1319447396"
OUTPUT="$(openssl crl -in $fileIn -noout -text | grep $serial)"
echo $OUTPUT
done
Run Code Online (Sandbox Code Playgroud)

这样我可以一次手动执行一个操作,但它仅适用于少量文件(目前为 9 个)。如果有数十个文件,它会变得令人厌烦且低效,如果有 100 个以上,则不可能这样做。

我想知道是否有一种“智能”方法来验证 .crt 与 .crl ?或者至少有一种方法可以编写 bash 脚本来完成工作,这样我就不必手动检查每个 .crt 了?现在这远远超出了我的脚本知识范围。

因此,在伪方面,如果存在这样的事情,我会很兴奋:

openssl x509 -verify cert1.cert -crl_list list8.crl
Run Code Online (Sandbox Code Playgroud)

bash ssl openssl verify ssl-certificate

-1
推荐指数
1
解决办法
2773
查看次数

open_reader() 中的意外异常

我在 ubuntu 16.04 中使用 pdftk 库来合并几个 pdf。一切正常,当我安装 SSL 证书时出现此错误:

Error: Unexpected Exception in open_reader()
java.lang.RuntimeException: java.lang.RuntimeException: error instantiating 
default socket factory: java.security.KeyManagementException: 
java.security.KeyStoreException: java.io.FileNotFoundException: 
/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre/lib/security/cacerts (No such file or 
directory)
at javax.net.ssl.SSLSocketFactory$ErrorSocketFactory.createSocket(libgcj.so.16)
at gnu.java.net.protocol.http.HTTPConnection.getSocket(libgcj.so.16)
at gnu.java.net.protocol.http.HTTPConnection.getOutputStream(libgcj.so.16)
at gnu.java.net.protocol.http.Request.dispatch(libgcj.so.16)
at gnu.java.net.protocol.http.HTTPURLConnection.connect(libgcj.so.16)
at gnu.java.net.protocol.http.HTTPURLConnection.getInputStream(libgcj.so.16)
at java.net.URL.openStream(libgcj.so.16)
at pdftk.com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(pdftk)
at pdftk.com.lowagie.text.pdf.PRTokeniser.<init>(pdftk)
at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk)
at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk)
Caused by: java.lang.RuntimeException: error instantiating default socket 
factory: java.security.KeyManagementException: java.security.KeyStoreException: 
java.io.FileNotFoundException: /usr/lib/jvm/java-1.5.0-gcj-5- 
amd64/jre/lib/security/cacerts (No such file or directory)
at javax.net.ssl.SSLSocketFactory.getDefault(libgcj.so.16)
at javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(libgcj.so.16)
at javax.net.ssl.HttpsURLConnection.getSSLSocketFactory(libgcj.so.16)
Run Code Online (Sandbox Code Playgroud)

经过多次研究,我发现问题来自 https 链接。当我使用带有https …

java ubuntu nginx ssl-certificate pdftk

-1
推荐指数
1
解决办法
2751
查看次数

如何从.net中的字符串中读取X509签名证书内容?

我在一个字符串里面有X509签名证书,如:

var signingCertificate = -----BEGIN CERTIFICATE-----\r\nMIICTjCCAbegAw.........-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

现在我想阅读这个证书的内容.我知道我们可以使用X509Certificate2对象,但直接从文件读取.反正有没有从字符串中读取内容?

asp.net ssl-certificate x509certificate2 x509certificate asp.net-core

-1
推荐指数
1
解决办法
498
查看次数

如何从Amazon Certificate Manager下载公共证书

我在Amazon Certificate Manager中有一个公共SSL证书。我想将此证书上传到不在Amazon中托管的实例。我如何从Amazon Certificate Manager下载证书。我需要下载证书和私钥

ssl-certificate amazon-web-services amazon-acm

-1
推荐指数
1
解决办法
65
查看次数

无法请求服务器,因为 ssl 无效或过期 - 如何忽略?

我正在尝试向服务器发出请求,但是我的服务器是使用自定义 ssl 设置的,openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes但是如何设置为类似于 python 的错误验证 sslrequests.get(url,verify=false)

客户

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (Stream stream = response.GetResponseStream())
    {
        using (StreamReader reader = new StreamReader(stream))
        {
            html = reader.ReadToEnd();
            Console.WriteLine(html);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# ssl-certificate

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