“no shared cipher” error with python and OpenSSL

后端 未结 2 1098
失恋的感觉
失恋的感觉 2021-01-18 12:13

Server:

#!/usr/bin/env python

import SocketServer
import json
from OpenSSL import SSL
import os
import socket

TERMINATION_STRING = \"Done\"

CERTIFICATE_P         


        
2条回答
  •  渐次进展
    2021-01-18 12:48

    Try to change order to this:

    ...
    ctx.use_certificate_file(CERTIFICATE_PATH)
    ctx.use_privatekey_file(KEY_PATH)
    ...
    

    When I use this order in my code I get meanfull error message on server start (not on client connect):

    Traceback (most recent call last):
      File "src/server_main.py", line 230, in 
        s = SSLClientsAuthServer()
      File "src/server_main.py", line 134, in __init__
        ctx.use_privatekey_file (self.config.value['SERVER_KEY'])
    OpenSSL.SSL.Error: [('x509 certificate routines', 'X509_check_private_key', 'key values mismatch')]
    

    This is because I have really used webserver.key that not corresponds webserver.crt:

    $ openssl x509 -text -in certs/webserver.crt
    Certificate:
    Data:
        Version: 3 (0x2)
    ...
                Modulus:
                    00:a1:b6:e3:ce:53:3d:c9:96:a6:06:1d:3e:ae:34:
    ....
    
    
    $ openssl rsa -text -in keys/webserver.key
    Private-Key: (2048 bit)
    modulus:
        00:b7:34:61:d7:c7:0d:2b:5c:57:26:d0:8d:7a:04:
    ....
    

    Make sure you have used the same RSA key.

提交回复
热议问题