Wrapping zu wickeln Ich versuche, Attribute zu meinem SSLContext-Objekt festlegen und dann versuchen, den Socket zu wickeln, aber es zeigt mir, dass keine der Attribute verwendet werden, während es umhüllt.Ich habe versucht, Socket mit SSLContext-Objekt auf Python-Server
Wenn ich es ausführen, haben die Cipher-Suiten noch DH und es verwendet PROTOCOL_TLSv1 anstelle der PROTOCOL_SSLv23 ich versuche, es zu setzen. Kann mir jemand zeigen, was ich hier falsch mache?
from socket import *
import ssl
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(('', 3340))
serverSocket.listen(1)
while True:
print ('Ready to serve...')
(newSocket,addr) = serverSocket.accept()
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) #still uses TLSv1
context.load_cert_chain(certfile="server.crt", keyfile="server.key")
context.set_ciphers("ALL:!DH") #Trying to get only cipher suites without DH
connectionSocket = context.wrap_socket(newSocket, server_side=True)
#################################
try:
message = connectionSocket.recv(1024)
filename = message.split()[1]
f = open(filename[1:])
outputdata = f.read()
connectionSocket.send("HTTP/1.1 200 OK\r\n\r\n")
for i in range(0, len(outputdata)):
connectionSocket.send(outputdata[i])
connectionSocket.send("\r\n")
connectionSocket.close()
except IOError: #Send response message for file not found
print ("IOError")
connectionSocket.send('404 Not Found: Requested document not found')
connectionSocket.close()
serverSocket.close()