Как легко создать сертификат SSL и настроить его в Apache2 в Mac OS X?


34

Я хотел бы использовать мой Mac OS X с https для локальных тестов разработки. Как я могу легко заставить Apache2 отвечать на ssl, просто для целей тестирования - мне не нужен настоящий сертификат, просто подделка, чтобы заставить работать локальный https

Ответы:


58

Для локального тестирования разработки достаточно самозаверяющего сертификата. Вы можете создать его с помощью набора OpenSSL следующим образом:

Генерация закрытого ключа:

openssl genrsa -des3 -out server.key 1024

выход:

Генерация закрытого ключа RSA, модуль 1024 бита
.................................................. ....... ++++++
........ ++++++
е составляет 65537 (0x10001)
Введите пароль PEM:
Подтверждение пароля - введите пароль PEM:

введите пароль для вашего личного ключа.

Генерация CSR (запрос на подпись сертификата):

openssl req -new -key server.key -out server.csr

он запросит такие детали:

Название страны (двухбуквенный код) [ГБ]:
Название штата или провинции (полное название) [Berkshire]:
Название населенного пункта (например, город) [Ньюбери]:
Название организации (например, компания) [My Company Ltd]:
Название организационной единицы (например, раздел) []:
Общее имя (например, ваше имя или имя хоста вашего сервера) []:
Адрес электронной почты []:
Пожалуйста, введите следующие «дополнительные» атрибуты
быть отправленным с вашим запросом сертификата
Пароль для вызова []:
Необязательное название компании []:

это довольно просто, общее имя - это имя хоста вашего сервера, как это указано в скобках.

Генерация самоподписанного сертификата:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Настройка SSL в httpd.conf для Apache:

SSLEngine на
SSLCertificateFile /path/to/generated/server.crt
SSLCertificateKeyFile /path/to/generated/server.key

(замените путь соответствующим образом на путь к вашему сертификату и ключу)

Перезапустите Apache :

apachectl restart

Apache попросит вас ввести ключевую фразу для вашего ключа. Если вы думаете, что будете часто отключать сервер, вы можете удалить ключевую фразу из ключа, чтобы не вводить ее каждый раз. Если нет, не беспокойтесь об этом. Если это так, выполните этот шаг после шага 2 ( Генерация CSR ):

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key

это почти беспокоит меня. Когда я пытаюсь получить доступ к какой-либо странице в моем Rails, используя http, страница существует, но когда я использую https, она возвращает страницу не найденную. Вы знаете, что может быть?
Даниэль Кукье

Вы изменили свой виртуальный хост для использования https на порту 443? Он должен выглядеть следующим образом: <VirtualHost 192.168.1.100:443> SSLEngine включен и т. Д .... </ VirtualHost>
Джон Т

Спасибо за это, я получил сертификат SSL, работающий на Lion с этим. Просто подумал, что добавлю пару замечаний, хотя это должно сделать вашу жизнь проще Apple Apache имеет httpd-ssl.conf, который уже настроен для поиска в / private / etc / apache2, так что если вы поместите туда файлы server. *, Это будет на один файл меньше для редактирования. Кроме того, вам нужно отредактировать httpd.conf, потому что строка, включающая httpd-ssl.conf, закомментирована по умолчанию. Наконец, 365 дней немного меньше, вы можете установить более длительную дату истечения срока действия или вы будете делать это снова в следующем году (я использовал 3650)
GordonM

Если у кого-то были проблемы, как у меня, вы будете рады найти эту ссылку, которая объясняет, как правильно настроить виртуальный хост с virtualhostx для работы с ssl yellowrobot.heroku.com/blog/2012/01/22/…
Relequestual

Если это ваш компьютер разработчика, вы, вероятно, хотели бы иметь закрытый ключ без пароля: openssl rsa -in server.key -out server.nopass.key
Aldekein
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.