33

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

1 ответ1

58

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

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

openssl genrsa -des3 -out server.key 1024

выход:

Generating RSA private key, 1024 bit long modulus
.........................................................++++++
........++++++
e is 65537 (0x10001)
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:

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

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

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

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

Country Name (2 letter code) [GB]:
State or Province Name (full name) [Berkshire]:
Locality Name (eg, city) [Newbury]:
Organization Name (eg, company) [My Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

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

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

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

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

SSLEngine on
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .