Этот вопрос перемещен отсюда.
У меня есть сервер под управлением Ubuntu 12.04. Я установил IPython на нем. Теперь, я хотел бы получить доступ к IPython через HTTPS.
Я сделал следующие шаги:
Создание сертификата SSL с openssl: openssl req -x509 -nodes -newkey rsa:1024 -keyout ipython_cert.pem -out ipython_cert.pem
Создайте хэш пароля в IPython:
from IPython.lib import passwd
passwd()
Создание профиля Ноутбука: ipython profile create nbserver
Отредактируйте файл конфигурации для профиля nbserver: nano /.ipython/profile_nbserver/ipython_notebook_config.py
c = get_config()
c.IPKernalApp.pylab = 'inline'
c.NotebookApp.certfile = u'/home/user/ipython_cert.pem'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'XXX'
c.NotebookApp.port = 4096
c.NotebookManager.notebook_dir = u'/home/user/pynb'
Затем, я запускаю ноутбук IPython как это: ipython notebook --profile nbserver
. Теперь, в моем браузере на моем ноутбуке, я ввожу IP-адрес своего сервера, сопровождаемого номером порта 4096
. IPython бросает эту ошибку:
SSL Error on 6 ('ip address', 54169): [Errno 1] _ssl.c:504: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request
Почему это и как я могу зафиксировать это?
Вводя IP или доменное имя в адресную строку браузера, браузер по умолчанию принимает HTTP. Вот что произошло с вами здесь, браузер ожидает HTTP-трафик, но сервер обслуживает HTTPS на этом порту. Таким образом, Браузер пожаловался, что ответ сервера имеет фундаментальное отклонение от ожидаемой формы.
Таким образом, решением является префикс вашего IP/внутреннего доменного имени в адресной строке браузера https://
.