小编Ste*_*ich的帖子

单向休息时双向SSL还是单向SSL?

我创建了一个client-rest-api,它调用了server-rest-api(单向调用).我的client-rest-api使用server-rest-api颁发的证书.但是我的client-rest-api从未向server-rest-api颁发任何证书.它是单向ssl还是双向ssl?

事件虽然它只是从客户端到服务器的单向调用,但我认为它的双向ssl,因为这里server-rest-api验证客户端是否拥有服务器发出的适当证书?

rest ssl ssl-certificate

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

如何使用python下载x509证书

我需要将服务器证书下载为 DER 文件。我正在使用Python。我可以使用此脚本连接到服务器,但我需要将证书本地下载到我的硬盘中,以便我可以在下一阶段解析它。

import socket, ssl
import OpenSSL

hostname='www.google.com'
port=443

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = context.wrap_socket(s, server_hostname=hostname)
ssl_sock.connect((hostname, port))
ssl_sock.close()
print("ssl connection Done")

cert = ssl.get_server_certificate((hostname, port))

# OpenSSL
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
Run Code Online (Sandbox Code Playgroud)

python ssl ssl-certificate x509 python-3.x

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

如何在 CentOS 7/8 上信任自签名 SSL?

我在本地主机上使用 nginx 的自签名证书。我正在使用 OpenSSL 最新版本来执行此操作。这是配置文件。

localhost.conf

[req]
default_bits       = 2048
default_keyfile    = localhost.key
distinguished_name = req_distinguished_name
req_extensions     = req_ext
x509_extensions    = v3_ca

[req_distinguished_name]
countryName                 = Country Name (2 letter code)
countryName_default         = US
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = Rochester
localityName                = Locality Name (eg, city)
localityName_default        = Rochester
organizationName            = Organization Name (eg, company)
organizationName_default    = localhost
organizationalUnitName      = organizationalunit
organizationalUnitName_default = Development
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_default          = …
Run Code Online (Sandbox Code Playgroud)

ssl openssl centos7

5
推荐指数
0
解决办法
2403
查看次数

Perl:使用 Office 365 发送邮件

我正在尝试使用 perl 通过服务器 Office 365 发送邮件

该操作 10 次中有 8 次成功(即随机在 20% 的情况下失败)。

use Net::SMTPS;
my $mailer = Net::SMTPS->new("smtp.office365.com", 
     Port => "587", 
     doSSL => "starttls", 
     SSL_version => "TLSv1", 
     Debug => 4
);
...
Run Code Online (Sandbox Code Playgroud)

$mailer 返回 undef ;

下面是日志:

Net::SMTPS>>> Net::SMTPS(0.10)
Net::SMTPS>>>   IO::Socket::IP(0.41)
Net::SMTPS>>>     IO::Socket(1.48)
Net::SMTPS>>>       IO::Handle(1.48)
Net::SMTPS>>>         Exporter(5.73)
Net::SMTPS>>>   Net::SMTP(3.13)
Net::SMTPS>>>     Net::Cmd(3.13)
Net::SMTPS=GLOB(0x30816b0)<<< 220 DU2PR04CA0355.outlook.office365.com Microsoft ESMTP MAIL Service ready at Fri, 22 Oct 2021 09:15:28 +0000
Net::SMTPS=GLOB(0x30816b0)>>> EHLO localhost.localdomain
Net::SMTPS=GLOB(0x30816b0)<<< 250-DU2PR04CA0355.outlook.office365.com Hello [54.77.44.87]
Net::SMTPS=GLOB(0x30816b0)<<< 250-SIZE 157286400
Net::SMTPS=GLOB(0x30816b0)<<< 250-PIPELINING
Net::SMTPS=GLOB(0x30816b0)<<< …
Run Code Online (Sandbox Code Playgroud)

perl ssl openssl smtp tls1.3

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

如何将一个元素插入数组中,将所有其他元素右移?

我有一个数组,我想在其中插入一个新元素,将所有其他元素向右移动:

my @a = (2, 5, 4, 8, 1);
# insert 42 into position no. 2
Run Code Online (Sandbox Code Playgroud)

预期结果:

(2, 5, 42, 4, 8, 1);
Run Code Online (Sandbox Code Playgroud)

perl

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

如何在不触发浏览器SSL检查的情况下重定向www流量?

我有example.com的有效证书.如果用户访问我的网站http://example.com,他们会被重定向到https://example.com,一切都很好.如果他们访问https://example.com,一切都很好.如果他们甚至访问http://www.example.com,他们会被重定向到https://example.com,一切都很好.

但是,如果他们访问https ://www.example.com,Chrome会在我重定向之前触发其SSL警告,并告知用户不信任此网站.我在Safari或Firefox中没有这个问题.

这是我的nginx配置.我究竟做错了什么?

```

# Configuration for redirecting non-ssl to ssl;                                                                                                                                                         

server {
    listen *:80;
    listen [::]:80;
    server_name example.com;
    return 301 https://example.com$request_uri;
}       

# Configuration for redirecting www to non-www; 

server {    
    server_name www.example.com;
    ssl_certificate ssl/ssl_cert.crt;
    ssl_certificate_key ssl/ssl_key.key;
    listen *:80;
    listen *:443 ssl spdy;    
    listen [::]:80 ipv6only=on;
    listen [::]:443 ssl spdy ipv6only=on;

    return 301 https://example.com$request_uri;
} 

server {
    listen *:443 ssl spdy;   
    listen [::]:443 ssl spdy;
    ssl_certificate ssl/ssl_cert.crt; …
Run Code Online (Sandbox Code Playgroud)

ssl redirect google-chrome nginx

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

如何确定最新的OpenSSL版本

找到最新版本号的最可靠来源是什么?是github吗?

如果是,我应该采用哪个版本?现在,这是我看到的: github发布页面

我应该带1.0.2k?但后来1.1.0d似乎它更新近(如果它遵循语义版本).这些字母究竟意味着什么?

注意:在我的例子中,这是使用nginx编译openssl版本.上次我选择(非常随机)版本1.0.2h,这似乎是当时的最新版本.

那么找到最新的openssl版本的过程是什么?

ssl openssl nginx

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

TLS 客户端是否需要在信任存储中拥有中间 CA?

当发生 TLS 握手时,服务器发送他的 ServerHello 消息,他的数字证书。该数字证书由名为 A 的中间 CA 进行数字签名,CA A 也有一个由名为 root 的 CA 签名的证书,其证书是自签名的,从而形成一个证书链。然后客户端必须建立信任,验证服务器证书。要执行该验证,客户端必须验证整个链是否正确?客户端必须在信任库中拥有所有证书(A 和 Root),否则客户端会下载它们?

ssl ssl-certificate

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

我是否需要客户端私钥来建立安全的 TLS/SSL 连接?

我在嵌入式设备上遇到了一个 mbedTLS 示例,在下载固件之前我看到了服务器证书验证(以 github.com 为例),但唯一编码的证书/密钥是 github 之一(CA 链,而不是 github 证书)本身)。

我的问题是:

  1. 如果我执行服务器 CA 验证,我只需要 CA 证书吗?
  2. 服务器验证后,两者之间的通信是否完全加密,这意味着固件文件是明文暴露的还是加密的?加密是使用服务器的私钥完成的吗?(我想它是在 github 服务器上)。如果不是,服务器私钥有什么用?正直?
  3. 我还需要客户端私钥来建立加密连接吗?如果不是,客户端私钥是否应该与服务器私钥执行相同的操作,但在客户端?

我对答案有一个大致的了解,但我需要确定性。

问候,

embedded ssl https tls1.2 mbedtls

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