Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> https server выдает ошибку 
:(
    Опции темы
pharrell
Дата 24.4.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 27.6.2006

Репутация: нет
Всего: нет



Вообщем сервер такой
Код

# -*- coding: cp1251 -*-
import socket, os
from SocketServer import BaseServer
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
from M2Crypto import SSL

class SecureHTTPServer(HTTPServer):
    def __init__(self, server_address, HandlerClass):
        try:
            BaseServer.__init__(self, server_address, HandlerClass)
            ctx = SSL.Context()
            if ctx.load_verify_locations('C:\Users\Илья\Desktop\SSL\cert\ca.crt') != 1:
                    raise Exception('No CA certs')
            ctx.set_verify(SSL.verify_peer|SSL.verify_fail_if_no_peer_cert, depth = 9)
            fcert = 'C:\Users\Илья\Desktop\SSL\cert\server.crt'
            fkey='C:\Users\Илья\Desktop\SSL\cert\server.key'
            ctx.load_cert(certfile=fcert,keyfile=fkey)
            self.socket = SSL.Connection(ctx,
                socket.socket(self.address_family,self.socket_type))
            self.server_bind()
            self.server_activate()
        except:
            print "Error in Server"
class SecureHTTPRequestHandler(SimpleHTTPRequestHandler):
    def setup(self):
        self.connection = self.request
        self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
        self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)


def start(HandlerClass = SimpleHTTPRequestHandler,
         ServerClass = SecureHTTPServer):
    server_address = ('', 443) # (address, port)
    httpd = ServerClass(server_address, HandlerClass)
    sa = httpd.socket.getsockname()
    print "Serving HTTPS on", sa[0], "port", sa[1], "..."
    print `socket.gethostbyname('Илья-ПК')`
    try:
        httpd.serve_forever()
    except: print "Error in <forever>"

if __name__ == '__main__':
    start()


При попытке обратиться через браузер вылетает ошибка:
Traceback (most recent call last):
  File "C:\Users\Илья\Desktop\HTTPS (2).py", line 46, in <module>
    test()
  File "C:\Users\Илья\Desktop\HTTPS (2).py", line 42, in test
    httpd.serve_forever()
  File "D:\Python26\lib\SocketServer.py", line 226, in serve_forever
    self._handle_request_noblock()
  File "D:\Python26\lib\SocketServer.py", line 276, in _handle_request_noblock
    request, client_address = self.get_request()
  File "D:\Python26\lib\SocketServer.py", line 444, in get_request
    return self.socket.accept()
  File "D:\Python26\lib\site-packages\M2Crypto\SSL\Connection.py", line 161, in accept
    ssl.accept_ssl()
  File "D:\Python26\lib\site-packages\M2Crypto\SSL\Connection.py", line 150, in accept_ssl
    return m2.ssl_accept(self.ssl)
SSLError: unexpected eof

Все сертификаты в браузере есть ,выдает окно с выбором сертификата клиента, но сервер уже вылетел.
Если писать клиента в другом скрипте все работает, т.е. запрос выполняет и возвращает страницу.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.0372 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.