Articles of SSL

用于64位Windows的OpenSSL和“不共享密码”

我刚编译并安装了64位Windows的OpenSSL。 我使用以下命令创build了一个自签名证书和一个私钥: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 10000 -nodes 我现在正在testingOpenSSL Wiki中使用Firefox的“简单TLS服务器”示例以及一些支持Winsock的修改,但是我一直在收到错误 11216:error:1417A0C1:SSL routines:tls_post_process_client_hello:no shared cipher:ssl\statem\statem_srvr.c:1422: (第一个数字总是不一样)在执行SSL_accept()函数期间。 我已经在使用Wireshark连接到HTTPS服务器(因为在本地主机上捕获很困难)的情况下,检查了Firefox(v 43.0.1)在其TLS v1.2客户端Hello中发送的(11)密码列表,并将其与支持的通过我的安装OpenSSL(find使用openssl.exe ciphers -s -tls1_2 -V )。 结果是有通用的密码,所以我错过了什么? 包含statem_srvr.c的行1422的块如下,从1420开始: if (cipher == NULL) { SSLerr(SSL_F_TLS_POST_PROCESS_CLIENT_HELLO, SSL_R_NO_SHARED_CIPHER); goto f_err; } 对原始代码的修改在while循环之前和标题中: #pragma comment(lib,"Ws2_32.lib") #include <stdio.h> #include <winerror.h> #include <WinSock2.h> #include <openssl/ssl.h> #include <openssl/err.h> #include […]

如何在Windows中的Perforce中生成证书?

在Windows根据文档我设置P4SSLDIR: 设置P4SSLDIR = E:\ Programs \ perforce \ P4SSLDIR \ 试图生成证书和私钥给出错误: C:\ programs> p4d -Gc Perforce服务器错误:P4SSLDIR未定义或不引用有效的目录。 如何克服这个产生秘密密钥和证书?

SSL握手失败:SSL错误:检测到证书中的密钥使用违规

我在Ubuntu上安装了kdesvn。 但是当我试图结帐,得到这个错误。 SSL handshake failed: SSL error: Key usage violation in certificate has been detected. 我遇到了这个解决scheme sudo mv /usr/lib/libneon-gnutls.so.27 /usr/lib/libneon-gnutls.so.27.old sudo ln -s /usr/lib/libneon.so.27 /usr/lib/libneon-gnutls.so.27 要么 sudo apt-get install libneon27 cd /usr/lib sudo rm libneon-gnutls.so.27 sudo ln -s /usr/lib/libneon.so.27 libneon-gnutls.so.27 但是我仍然得到相同的错误。

Debian Linux的Python 3.5.2的源码版本中没有SSL和Tkinter

我刚刚将Python 3.5.2下载到我的Debian机器上,并使用下面的代码构build它: ./configure make make test sudo make install 一切正常,但在make test输出中,由于没有安装_tkinter和_ssl模块,它显示安装程序跳过了某些testing。 而且,缺乏SSL使我无法使用点子。 这也发生在我的3.5.1版本上,但是我认为这只是一个早期的错误版本。 我怎样才能解决这个问题? 我特别需要SSL来发送电子邮件。

Unix3上的Python3 CGI HTTPS服务器失败

这个Python3 CGI HTTPS服务器过去几个星期(或几个月)工作,但现在不再在Linux(Ubuntu)下工作。 我试过在Ubuntu 10.04和Ubuntu 14.04上的行为是一样的。 现在,当我尝试访问任何CGI脚本,我得到: Secure Connection Failed An error occurred during a connection to 127.0.0.1:4443. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long) 以下是服务器的代码: import http.server import ssl import os server_address = ('', 4443) cert = os.path.abspath('./server.pem') handler = http.server.CGIHTTPRequestHandler handler.cgi_directories = ['/cgi-bin'] httpd = http.server.HTTPServer(server_address, handler) […]

ECDSA证书问题提升asio

我正在使用boost :: asio实现SSL服务器。 上下文初始化显示在下面的代码中 boost::asio::ssl::context_base::method SSL_version = static_cast<boost::asio::ssl::context_base::method>(param_values[ID_PROTOCOL_VERSION].int32_value); // load certificate files boost::shared_ptr<boost::asio::ssl::context> context_ = boost::shared_ptr<boost::asio::ssl::context>( new boost::asio::ssl::context(SSL_version)); p_ctx = boost::static_pointer_cast<void>(context_); context_->set_options(boost::asio::ssl::context::default_workarounds); context_->use_certificate_chain_file(cert_chain_file); context_->use_certificate_file(cert_file, boost::asio::ssl::context::pem); context_->use_private_key_file(cert_file, boost::asio::ssl::context::pem); context_->set_verify_mode(boost::asio::ssl::verify_peer | boost::asio::ssl::verify_fail_if_no_peer_cert); context_->set_verify_callback(boost::bind(&verify_certificate_cb, _1, _2)); if (param_values[ID_CIPHER_LIST].int32_value != 0) { std::string cipher_list = ""; generate_cipher_list(param_values[ID_CIPHER_LIST].int32_value, cipher_list); MA5G_logger::log(PRIORITY_INFO, "Supported cipher list %s", cipher_list.c_str()); SSL_CTX_set_cipher_list((reinterpret_cast<boost::asio::ssl::context*>(p_ctx.get()))->native_handle(), cipher_list.c_str()); } 在cipher_list ,我支持下面的列表 […]

CertificateException:不存在主题替代名称

在调用https webservice时出现以下exception。 com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present. 我正在从Java代码中调用一个php webservice。 CN(通用名称),即证书上的IP地址和我所调用的IP地址是不同的。 我已经在java的密钥库中添加了证书。 有人能帮我解释为什么会发生这种情况吗? 我哪里去错了? CN是服务器IP地址。 我打电话给那个服务器使用它的外部IP地址也给我们,因为防火墙的问题。

OpenSSL:无法使用SSL_CTX_new()创buildSSL_CTX *

按照页面上的说明,我正在尝试使用openSSL以安全的方式连接客户端/服务器。 我无法创buildSSL_CTX,如下所示: /* OpenSSL headers */ #include "openssl/bio.h" #include "openssl/ssl.h" #include "openssl/err.h" int main() { /* Initializing OpenSSL */ SSL_load_error_strings(); ERR_load_BIO_strings(); OpenSSL_add_all_algorithms(); SSL_CTX * ctx = SSL_CTX_new(SSLv23_client_method()); ….. } ctx引用总是变成NULL。 任何人都可以请告诉我错过了什么步骤? 谢谢。 更新 在检查错误,消息是 Error: library has no ciphers

在Linux上吱吱叫SMTP

我正在使用Squeak 5类SecureSMTPClient通过SSL / TLS发送电子邮件。 它在我的Windows机器上正常工作(感谢这个问题的答案)。 但是,在Linux上我得到: Error: primitiveSSLCreate failed 并在控制台中进行打印(但仅在图像第一次尝试发送邮件时): # ioLoadModule(/home/squeak5vm/SqueakSSL): /home/squeak5vm/SqueakSSL: undefined symbol: clock_gettime 吱吱“原语”是与平台和图书馆交谈的function。 我的猜测是,这个Linux不提供Squeak期望的一些SSL / TLS库版本。 但Squeak究竟期待什么呢? 其他信息: ldd /home/squeak5vm/SqueakSSL的输出是: linux-gate.so.1 => (0xb7757000) libc.so.6 => /lib32/libc.so.6 (0xb7392000) /lib/ld-linux.so.2 (0xb7758000)

在Mint上安装M2Crypto的问题:后续

我在这里问了一个关于在Mint中安装M2Crypto python库的问题。 这个问题被成功回答,我能够build立和安装M2Crypto。 但是,我无法在Python中使用它。 当我尝试导入模块时,出现以下错误: >>> import M2Crypto Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/M2Crypto/__init__.py", line 22, in <module> import __m2crypto ImportError: /usr/local/lib/python2.7/dist-packages/M2Crypto/__m2crypto.so: undefined symbol: SSLv2_method 如果有人知道如何解决这个错误,请让我知道。