Як легко створити сертифікат SSL і налаштувати його в Apache2 в Mac OS X?


34

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

Відповіді:


58

Для тестування на місцевий розвиток адекватним є самопідписаний сертифікат. Ви можете створити його за допомогою набору OpenSSL так:

Створення приватного ключа:

openssl genrsa -des3 -out server.key 1024

вихід:

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

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

Генерування КСВ (запит на підпис сертифікату):

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

він запитає такі деталі:

Назва країни (2 буквений код) [ГБ]:
Назва штату чи провінції (повна назва) [Беркшир]:
Назва місцевості (наприклад, місто) [Newbury]:
Назва організації (наприклад, компанія) [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, повертається сторінка не знайдена. Ви знаєте, що може бути?
Даніель Кюкір

Ви змінили свій virtualhost для використання https на порту 443? Він повинен виглядати наступним чином : <VirtualHost> 192.168.1.100:443 SSLEngine On, і т.д .... </ VirtualHost>
John T

Дякую за це, я отримав SSL Cert, що працює на Лева з цим. Я просто подумав, що я додам пару пунктів, хоча це має полегшити ваше життя. Apple Apache має httpd-ssl.conf, який вже налаштований для пошуку в / private / etc / apache2, тому якщо ви поставите ваш сервер. * Файли там, це один файл, який потрібно менше редагувати. Також вам потрібно відредагувати httpd.conf, оскільки рядок, що включає httpd-ssl.conf, коментується за замовчуванням. Нарешті, 365 днів трохи коротше, можливо, ви захочете встановити більш тривалий термін придатності або ви будете робити це знову в наступному році (я використав 3650)
GordonM

Якщо у когось виникли такі проблеми, як у мене, ви будете раді знайти це посилання, яке пояснює, як правильно налаштувати virtualhost за допомогою virtualhostx для роботи з ssl yellowrobot.heroku.com/blog/2012/01/22/…
Випускний

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