Этот вопрос перенесен из Вот.
У меня есть сервер под управлением 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()
Создание профиля Notebook: 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://
адресная строка браузера.