TheSSL_get_peer_certificate_FQDNfunction returns the fully qualified domain name (FQDN) from the peer certificate. For an X.509 version 3 certificate, this function returns up to five dNSName fields from the subjectAltName extension. If the dNSName field does not exist or you are using an ...
socket created binded begin listen server: got connection from 127.0.0.1, port 56566, socket 4 证书验证通过数字证书信息: 证书: /O=TLS Project Device Certificate/CN=192.16.108.93 颁发者: /O=TLS Project Dodgy Certificate Authority 消息'server->client'发送成功,共发送了14个字节!接收消息成功:'from ...
Certificate[] 对等证书的有序数组,其自己的证书首先跟任何证书颁发机构。 实现 GetPeerCertificates() 属性 RegisterAttribute 注解 返回在定义会话过程中建立的对等方的标识。 注意:仅当使用基于证书的密码套件时,才能使用此方法;将它与基于证书的非基于证书的密码套件(如 Kerberos)配合使用将引发 SSLPeerUnverifiedExcept...
cert = SSL_get_peer_certificate(ssl); // SSL_get_verify_result()是重点,SSL_CTX_set_verify()只是配置启不启用并没有执行认证,调用该函数才会真证进行证书认证 // 如果验证不通过,那么程序抛出异常中止连接 if(SSL_get_verify_result(ssl) == X509_V_OK){ printf("证书验证通过\n"); } if (cert...
(ssl_sock,hostname,server=False,debug=False):cert=ssl_sock.getpeercert()ifcertisNone:say('Peer certificate','none')else:say('Peer certificate','provided')subject=cert.get('subject',[])names=[namefornamesinsubjectfor(key,name)innamesifkey=='commonName']if'subjectAltName'incert:names.extend...
当主机B发起一个SSL连接时,我们在本地8888端口就可以监听到连接,这时我们接受这个连接,并获得该链接的原始目的地址,以便后续连接服务器时使用。该部分封装到了get_socket_to_client函数中。 int get_socket_to_client(int socket, struct sockaddr_in* original_server_addr) { ...
{X509*cert;char*line;cert=SSL_get_peer_certificate(ssl);if(cert!=NULL){line=X509_NAME_oneline(X509_get_subject_name(cert),0,0);printf("[+] 证书: %s \n",line);free(line);line=X509_NAME_oneline(X509_get_issuer_name(cert),0,0);printf("[+] 颁发者: %s \n",line);free(line);...
certificate = pyopenssl.ssl.DER_cert_to_PEM_cert(socket.getpeercert(True)) connection.close() cert_obj = pyopenssl.OpenSSL.crypto.load_certificate(pyopenssl.OpenSSL.crypto.FILETYPE_PEM, certificate) cert_issue = cert_obj.get_issuer() return { ...
server_hostname=domain)try:# 建立SSL连接skt.connect((ip,443))# 获取证书过期时间end_date = skt.getpeercert()['notAfter'].strip(' GMT')# 创建一个字典,存储本次连接中的域名、IP 地址和证书过期时间信息skt_info = {'domain': domain,'ip': ip,'end_date': end_date}exceptssl.CertificateError...
这两个函数是可以重复调用的,这个特性在非阻塞模式下尤为明显。 此外,在握手完成后,可通过调用SSL_get_peer_certificate来获取对端的证书。 X509 *SSL_get_peer_certificate(const SSL *s); 如果对方存在证书,就可以调用X509的相关函数提取证书的身份信息,比如: ...