我在发出 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) 我可以使用 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我需要配置我的网站 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) 在通过机器人框架运行自动化测试时,我的 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)
先感谢您
我有一个安全的 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) 我遇到以下问题:
如果我使用网络浏览器打开地址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 中也起作用?
谢谢
我对这个 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) 我有一个 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
我获得了多个证书文件,例如“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) 我在 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 …
我在一个字符串里面有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
我在Amazon Certificate Manager中有一个公共SSL证书。我想将此证书上传到不在Amazon中托管的实例。我如何从Amazon Certificate Manager下载证书。我需要下载证书和私钥
我正在尝试向服务器发出请求,但是我的服务器是使用自定义 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) ssl-certificate ×13
ssl ×3
asp.net-core ×2
c# ×2
https ×2
java ×2
amazon-acm ×1
asp.net ×1
bash ×1
go ×1
gorilla ×1
jks ×1
nginx ×1
node.js ×1
openssl ×1
pdftk ×1
powershell ×1
python-3.x ×1
spring-boot ×1
tomcat ×1
ubuntu ×1
verify ×1
websocket ×1
windows-7 ×1
winforms ×1