标签: tls1.2

使用自签名证书 cURL 本地 GO 服务器

因此,我有一个简单的GO服务器在端口上运行8080,使用我使用以下命令创建的自签名证书:

\n\n
openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out local.crt -keyout local.key\n
Run Code Online (Sandbox Code Playgroud)\n\n

创建它时,我将字段设置为以下值:\n在此输入图像描述
\n如你所见,我跳过了除fully qualified host name我设置的之外的所有内容go-auth

\n\n

local.key我使用和文件成功启动了我的 go 服务器local.crt

\n\n

我尝试像这样卷曲它:

\n\n
\xe2\x9e\x9c  certs git:(master) \xe2\x9c\x97 curl --proxy-cacert local.crt https://go-auth/\ncurl: (6) Could not resolve host: go-auth\n\n\xe2\x9e\x9c  certs git:(master) \xe2\x9c\x97 curl --proxy-cacert local.crt https://localhost:8080/\ncurl: (60) SSL certificate problem: self signed certificate\nMore details here: https://curl.haxx.se/docs/sslcerts.html\n\ncurl failed to verify the legitimacy of the server …
Run Code Online (Sandbox Code Playgroud)

ssl curl tls1.2

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

无法使用 Python 3.10.x 建立 SLDAP 连接

使用以下代码可以使用 ldap3 模块在 Python 3.8.x 中设置连接对象。

tls = Tls(validate=ssl.CERT_NONE, version=ssl.PROTOCOL_TLSv1_2)
server = Server(server_uri, use_ssl=True, tls=tls, get_info=ALL)
conn = Connection(server, user="domain\\myusername", password="password", authentication=NTLM, auto_referrals=False)
conn.bind()
Run Code Online (Sandbox Code Playgroud)

但从 Python 3.10 开始,此代码不再有效 - 执行时会导致 SSL 握手错误。我相信这是因为当前 Python 3.10.x 包中使用的 OpenSSL 库发生了变化。

还有其他人遇到过这个问题并希望找到解决方案吗?

python ssl tls1.2 ldap3

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

EWS连接是否支持TLS 1.2

我不是EWS或TLS 1.2的专家.我不确定如何调查这个问题.

基本上,我的客户端应用程序大量使用EWS,其形式是从Exchange服务器提取数据并从Exchange服务器接收订阅主题的通知.

我有一个客户的问题,我正在为我工​​作.从客户端应用程序到Exchange服务器使用的EWS连接是否支持TLS 1.2?

Exchange服务器可以是2010年和2013年.

我不确定如何确认这一点,或者默认情况下支持此功能.

欢迎提出任何建议或建议.

编辑:

客户端应用程序是用JavaScript编写的.

Exchange服务器的端点是https://outlook.office365.com/EWS/Exchange.asmx

很明显它是https端点.这是否意味着在TLS 1.2合规性下已经运行良好?

client-server exchangewebservices tls1.2

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

尽管升级到Python 2.7,Python仍然使用TLSv1或TLSv1.1请求库

我想确保在使用请求库发布到HTTP服务器时,它会拒绝使用TLSv1或TLSv1.1进行通信.为此,我配置了我的https服务器以强制SSL协议使用TLSv1或TLSv1.1.我希望这些版本被拒绝.

我的python程序在CentOs机器上运行:

cat /etc/centos-release
CentOS release 6.7 (Final)
Run Code Online (Sandbox Code Playgroud)

默认的Python版本是2.6.6:

which python
/usr/bin/python
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Run Code Online (Sandbox Code Playgroud)

我安装了python 2.7:

which python2.7
/usr/local/bin/python2.7
Python 2.7.6 (default, Jun  2 2017, 11:37:31) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2
>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 1.0.1e-fips 11 Feb 2013'

openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
Run Code Online (Sandbox Code Playgroud)

使用pip2.7,我安装了所需的库以获取运行请求.我没有对openssl做任何改动.

我发送了两个测试警报,似乎我的程序协商到TLSv1.我的印象是TLSv1已被弃用.该程序使用python 2.7执行,而不是python 2.6的系统默认值.

在我嵌入的python程序的顶部:#!/ usr/local/bin/python2.7

以下是显示TLSv1.1和TLSv1的2个帖子警报:

"POST /testpost HTTP/1.1" 200 43 TLSv1.1/ECDHE-RSA-AES256-SHA "-" "python-requests/2.5.1 CPython/2.6.6 …
Run Code Online (Sandbox Code Playgroud)

python pyopenssl python-requests tls1.2

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

与凯迪的HTTPS代理

我正在使用Golang应用程序和Caddy作为HTTP服务器.golang应用程序拒绝每个http连接,它只能通过HTTPS使用.此应用是一种其他应用消耗的API /服务.因为它需要HTTPS我安装了Caddy所以我可以利用自动SSL证书并使用代理在端口之间切换.

应用程序在端口9000中运行,因此,消费者只会写入mysite.com并且球童应该负责将请求重定向到端口9000但是维护HTTPS.该网站的球童配置是:

mysite.com {
    proxy / :9000 {
        max_fails 1
    }
    log logfile
}
Run Code Online (Sandbox Code Playgroud)

然而,似乎在代理服务器上,HTTPS丢失了.我检查了应用程序的日志(没有球童的日志),我得到了这个:

http: TLS handshake error from xxx.xxx.xxx.xxx:xxxx: tls: oversized record received with length 21536
Run Code Online (Sandbox Code Playgroud)

所以,基于这个错误,对我来说看起来像是由caddy制作的HTTP代理正在丢失HTTPS.我能做什么?

ssl go tls1.2 caddy

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

Java 6上的TLS 1.2

我有一个在Java 6上运行的旧版应用程序。但是,由于某些安全因素,我们需要升级到TLS 1.2。为此,我尝试了以下代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.UnknownHostException;
import java.security.KeyManagementException;
 import java.security.NoSuchAlgorithmException;
 import java.util.Arrays;
 import javax.net.ssl.HttpsURLConnection;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLParameters;

public class TlsCheck {

/**
 * test whether this client can connect to TLS v1.2 or not
 */

public static boolean isSuccessfulTLS12connection(){
    try{
        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(null, null, null);
        HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());

        URL url = new URL("https://tlstest.paypal.com");
        HttpsURLConnection httpsConnection = (HttpsURLConnection)url.openConnection();
        httpsConnection.connect();
        BufferedReader reader = new BufferedReader(new InputStreamReader(httpsConnection.getInputStream()));
        StringBuilder body = new StringBuilder();
        while(reader.ready()){
            body.append(reader.readLine());
        } …
Run Code Online (Sandbox Code Playgroud)

java ssl java-6 tls1.2

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

Java 7:发送 TLSv1.2 警报:致命,描述 = handshake_failure mule

我正在使用java 7mule 3.7.0,我已经安装了Java Cryptography Extension

我正在尝试向服务器发送请求,但我收到:

java.io.EOFException: SSL peer shut down incorrectly
        at sun.security.ssl.InputRecord.read(InputRecord.java:482)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:944)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1342)


Cipher Suites: [TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA]
Compression Methods:  { 0 }
Extension elliptic_curves, curve names: {secp256r1, secp384r1, secp521r1}
Extension ec_point_formats, formats: [uncompressed]
Extension extended_master_secret
Extension server_name, server_name: [host_name: merchant.payb.lv]
***
entry.worker.04, WRITE: TLSv1 Handshake, length = 136
entry.worker.04, received …
Run Code Online (Sandbox Code Playgroud)

java ssl mule tls1.2

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

什么版本的 Git 支持 TLS 1.2?

Bitbacket 关闭 TLS v1.0 和 v1.1。我们的 Jenkins 由于旧的 Git 而失败:

git --version
git version 1.8.2.3
+ GIT_CURL_VERBOSE=1
+ git ls-remote https://bitbucket.org/
* Couldn't find host bitbucket.org in the .netrc file, using defaults
* About to connect() to bitbucket.org port 443
*   Trying 18.205.93.1... * connected
* Connected to bitbucket.org (18.205.93.1) port 443
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Unknown SSL protocol error in connection to bitbucket.org:443
Run Code Online (Sandbox Code Playgroud)

我查看了 Git 发行说明:

git clone --depth=1 https://github.com/git/git …
Run Code Online (Sandbox Code Playgroud)

git jenkins tls1.2

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

带有证书、私钥和密码短语的 TLS

我正在与为我提供证书的银行服务器集成。我pem用证书创建了一个文件,所以现在我有证书、pem文件中的私钥和密钥的密码短语。

新生成的文件pem正在使用 OpenSSL 命令建立 SSL 连接,如下所示:

openssl s_client -connect host:port -key key.pem -cert cert.pem
Run Code Online (Sandbox Code Playgroud)

此命令请求密码短语,我可以连接。但是我无法使用我的 Go 代码连接到相同的内容,如下所示:

package main

import (
    "crypto/tls"
    "crypto/x509"
    "fmt"
    "net/http"
)

func main() {
    caCert := []byte(`certs pem data`) // this contains both private key and certificates
    caCertPool := x509.NewCertPool()
    caCertPool.AppendCertsFromPEM(caCert)

    // Setup HTTPS client
    tlsConfig := &tls.Config{
        RootCAs:            caCertPool,
        InsecureSkipVerify: true,
    }
    tlsConfig.BuildNameToCertificate()
    transport := &http.Transport{TLSClientConfig: tlsConfig}
    client := &http.Client{Transport: transport}

    httpRequest, _ := http.NewRequest("GET", "https://test.com", nil)
    resp, …
Run Code Online (Sandbox Code Playgroud)

ssl openssl rsa go tls1.2

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

匿名密码不适用于 OpenSSL1.1.1-D

我正在使用 OpenSSL-1.1.1-D 验证匿名密码支持,但它因SSL 例程而失败:ssl_cipher_list_to_bytes:no ciphers available:ssl\statem\statem_clnt.c:3798:No ciphersenabled for max allowed SSL/TLS version

注意:: TLSv1.3 已明确禁用。

请找到S_Server和S_Client结果如下

OpenSSL S_服务器

s_server -no_tls1_3 -cipher ADH-AES128-SHA:ADH-AES128-SHA256:ADH-AES256-SHA256 -state -accept localhost:14000 -nocert -msg

使用默认临时 DH 参数
ACCEPT
SSL_accept:SSL 初始化之前
TLS 1.0,警报 [长度 0002],致命意外消息
SSL3 警报写入:致命:意外消息
SSL_accept:错误中的错误
错误
41244:错误:140940F4:SSL 例程:ssl3_read_bytes:意外消息:ssl \record\rec_layer_s3.c:1477: 关闭 SSL
连接已关闭

OpenSSL S_客户端

s_client -no_tls1_3 -cipher ADH-AES128-SHA256:ADH-AES256-SHA256 -state -connect localhost:14000 -msg

CONNECTED(00000168)
SSL_connect:SSL初始化
TLS 1.2之前,警报[长度0002],致命内部
错误SSL3警报写入:致命:内部错误
SSL_connect:错误35516中的错误:错误:141A90B5:SSL例程:ssl_cipher_list_to_bytes:没有可用的密码:ssl\ statem\statem_clnt.c:3798:没有为最大支持的 SSL/TLS 版本启用密码,
没有可用的对等证书,
没有发送客户端证书 CA 名称
SSL 握手已读取 0 字节并写入 7 字节
验证:确定
新,(无),密码是(无) …

openssl tls1.2

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