Я только что попытался - мне нужно было протестировать код разработки на моем локальном хосте Apache в Windows . Это было WAAAY сложнее, чем должно быть. Но вот шаги, которые удалось сработать после долгой стрижки волос ...
Я обнаружил, что моя установка Apache идет с, openssl.exeчто полезно. Если у вас нет копии, вам нужно ее скачать. Моя копия была в Apache2\binпапке, как я на нее ссылаюсь ниже.
шаги:
Убедитесь, что у вас есть права на запись в вашу папку Apache conf
Откройте командную строку в Apache2\confпапке
Тип ..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Вы можете оставить все вопросы пустыми, кроме:
Пароль PEM: временный пароль, такой как «пароль»
Общее имя: имя хоста вашего сервера
Когда это завершится, введите ..\bin\openssl rsa -in blarg.pem -out blarg.key
Откройте conf\httpd.confфайл Apache и убедитесь, что модуль SSL включен - в начале этой строки не должно быть хеша: LoadModule ssl_module modules/mod_ssl.so
Некоторые установки Apache помещают конфигурацию SSL в отдельный файл. Если это так, убедитесь, что файл SSL Conf включен. В моем случае мне пришлось раскомментировать эту строку: Include conf/extra/httpd-ssl.conf
В конфиге SSL httpd-ssl.confмне пришлось обновить следующие строки:
Обновление SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)" до SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)" (квадратные скобки в путанице запутывают модуль, поэтому нам нужно избегать их)
DocumentRoot - установите это в папку для ваших веб-файлов
Спасибо. Мне также пришлось отредактировать директивы ErrorLog, TransferLog и CustomLog для правильных путей, иначе Apache не запустится.
Тамлин
1
По какой-то причине инструкции больше не работают или не являются полными
Jacobian
6
Я должен был раскомментируйте , а также в моей httpd.conf для его работы: LoadModule socache_shmcb_module модули / mod_socache_shmcb.so
Erik
1
Я сделал еще два шага, чтобы заставить его работать, добавив модуль LoadModule socache_shmcb_module modules / mod_socache_shmcb.so и в httpd-ssl.conf я исправляю путь к журналу ssl в строке 250, CustomLog ".apache24 / logs / ssl_request.log" \
Wasim A .
5
Чтобы сгенерировать файлы .pem и .key, мне нужно было установить 2 переменные среды на шаге 2: установить OPENSSL_CONF = C: \ path \ to \ apache \ Apache2.4.4 \ conf \ openssl.cnf установить RANDFILE = C: \ путь \ к \ apache \ Apache2.4.4 \ conf \ .rnd
эосфера
57
Я использую ngrok ( https://ngrok.com/ ) для этого. ngrok - это инструмент командной строки, создающий туннель для localhost. Он создает как http, так и https соединение. После загрузки необходимо выполнить следующую команду:
ngrok http 80
(В версии 2 синтаксис: ngrok http 80. В версии 2 любой порт может быть туннелирован.)
@sudip, работает ли код с открытым исходным кодом ngrok таким образом, что мы можем разместить его на нашем собственном сервере без изменений? Если нет, то это в значительной степени потому , что это остановит всю работу это не нормально , чтобы перенаправить пользователей запросы на внешний хост , как ngrok.
Пейсер
2
@Pacerier Я не собираюсь использовать его на сервере. Я использую его на локальном хосте (Bcz мой сетевой провайдер дает мне динамический IP). Я впервые использовал его для тестирования IPN PayPal, и он работал отлично. Интересно, почему кто-то будет использовать его на сервере и для каких целей.
Суд
@sudip, цель очевидна, чтобы код, работающий по HTTP, также работал с HTTPS без необходимости дополнительного кодирования.
Pacerier
1
Хотя это полезно, кажется невероятно небезопасным разрешать доступ к вашей машине для разработчиков в открытый интернет. Если вы воспользуетесь чем-то подобным, вы будете уволены с работы, заботясь о безопасности.
Энди М
@YumYumYum. Раньше она была полностью бесплатной в V 1. Но порты http и https по-прежнему свободны в v 2 (не знаю, существует ли какое-либо ограничение порта, существует ли бесплатный план). Проверьте бесплатный план здесь: ngrok.com/product#pricing
sudip
24
вот самый простой способ сделать это
сначала скопируйте эти файлы server.crt & server.key (найдите в приложении) в ваш каталог apache / conf / ssl
затем откройте файл httpd.conf и добавьте следующую строку
Мне также пришлось включить модуль LoadModule ssl_module libexec / apache2 / mod_ssl.so в (/etc/apache2/httpd.conf)
Алексей
17
Интересно, насколько безопасно / опасно загружать файлы * .crt * .key из ненадежного источника вместо создания собственных.
Петр Пеллер
4
@PetrPeller: мы настраиваем https для локального развития, так что зачем удивляться безопасному / опасному
Анил Гупта
7
Объяснение того, как генерировать эти файлы, было бы здорово. Потому что скачивание файлов из неизвестного источника - плохая практика, но также потому, что ссылки такого рода в какой-то момент прекратятся.
Для обеспечения безопасности информации, отправляемой на ваш веб-сервер и с него, рекомендуется включить шифрование связи между клиентами и сервером. Это часто называют SSL .
Итак, давайте настроим HTTPS с самозаверяющим сертификатом на Apache2. Я собираюсь перечислить шаги, которые вы должны выполнить:
Установите веб-сервер apache2 на свой компьютер. Для машины linux откройте терминал и наберите
sudo apt-get установить apache2
После успешной установки проверьте состояние службы apache2, выполнив команду
Убедитесь, что вы получаете страницу по умолчанию для apache2, как это.
Для шифрования веб-соединения нам нужен сертификат от CA (центра сертификации) или мы можем использовать самозаверяющие сертификаты. Давайте создадим самозаверяющий сертификат, используя следующую команду.
Пожалуйста, заполните информацию соответственно, как показано ниже.
mykey.key и mycert.pem должны быть созданы в вашем текущем рабочем каталоге.
Было бы хорошо, если бы мы перемещали сертификаты и ключи в одном месте, и веб-серверу apache2 было бы легко их найти. Итак, давайте выполним следующие команды
sudo cp mycert.pem / etc / ssl / certs
sudo cp mykey.key / etc / ssl / private
Давайте включим режим SSL на вашем сервере
sudo a2enmod ssl
Это должно вывести вот так
Давайте настроим apache2 для использования самозаверяющего сертификата и ключа, которые мы сгенерировали выше.
sudo vi /etc/apache2/sites-available/default-ssl.conf
Найдите эти две строки и замените их вашими сертификатом и ключом.
начальный
окончательный
Включить сайт
cd / etc / apache2 / sites-available /
sudo a2ensite default-ssl.conf
Перезапустите сервис apache2
перезапуск службы sudo apache2
Проверьте веб-сервер apache2 по HTTPS. Снова откройте браузер и введите
Он должен вывести что-то вроде этого с предупреждением о том, что страница, которую вы собираетесь просматривать, небезопасна, поскольку мы настроили сервер с самозаверяющим сертификатом.
Поздравляем вы настроили apache2 с HTTPS конечных точек, теперь нажмите на передовой -> добавить исключение -> Исключение безопасности подтверждения , вы увидите страницу по умолчанию снова.
Я предпочитаю не редактировать любой файл конфигурации, если могу, поэтому я оставил все default-ssl.confкак есть. Я собирался переименовать mycertв ssl-cert-snakeoilно этот файл уже существует , так что я просто использовал это! Так что я смог безопасно пропустить два шага в Debian.
Рольф
@Rolf Я согласен с вами, но в производстве всегда используется новый сертификат и ключ. Чтобы показать, как их можно создать, я добавил 2 дополнительных шага для Debian. Спасибо :)
Динеш Кумар
Можно ли как-нибудь добавить свой самозаверяющий сертификат в качестве центра сертификации, чтобы не видеть предупреждений?
Аарон Франке
9
Windows + Apache 2.4, например:
раскомментируйте ssl_module в вашем httpd.confфайле.
LoadModule ssl_module modules/mod_ssl.so
слушайте 443 порт, как 80 порт в вашем httpd.confфайле.
Listen 80
Listen 443
Снимите комментарий Включить виртуальные хосты в ваш httpd.confфайл.
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
добавить VirtualHost в свой conf/extra/httpd-vhosts.conf
<VirtualHost _default_:443>
DocumentRoot "D:/www" #your site directory path
ServerName localhost
#ServerAlias localhost.com localhost2.com
SSLEngine on
SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
<Directory "D:/www">
Options -Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
только номер порта 443и SSL......линии отличаются от обычного http config.
сохраните ваш конфигурационный файл и перезапустите службу Apache. тогда вы можете посетить https: // localhost /
Веб-браузер предупредит вас, что в первый раз это небезопасно, просто нажмите «Продолжить».
Это сработало для меня на XP Home, Apache 2.4. Скопированы 2 файла сертификата из предыдущего поста (Анил Гупта). Не комментировав mod_ssl и включив httpd-vhosts.conf в httpd.conf, в httpd-vhosts.conf добавлена директива VirtualHost Анила Гупты (с некоторыми скорректированными путями).
jogi99
7
На самом деле это довольно просто, если у вас есть удобная установка openssl. (На какой ты платформе?)
Предполагая, что вы используете Linux / Solaris / Mac OS / X, мини-HOWTO Van Apache SSL / TLS имеет превосходное руководство, которое я не буду здесь воспроизводить.
Тем не менее, резюме заключается в том, что вы должны создать самозаверяющий сертификат. Поскольку вы используете apache для localhost, предположительно для разработки (то есть не для публичного веб-сервера), вы будете знать, что можете доверять самозаверяющему сертификату и игнорировать предупреждения, которые ваш браузер будет выдавать вам.
Привет, я работаю на ОС Windows. А что касается самозаверяющего сертификата, нужно ли его скачивать или каким-либо другим способом?
KennC.
3
Нет. Вы сделаете самоподписанный сертификат самостоятельно. У вас есть apache httpd + ssl? Вам понадобится SSL, чтобы сделать это. Этот сайт: rubayathasan.com/tutorial/apache-ssl-on-windows содержит полезную информацию о запуске ssl в Windows. Вы будете выполнять некоторую работу с командной строкой, но это все равно хорошо для вас. :-)
Я публикую этот ответ, так как я сам боролся с этим, и Chrome обновил свою безопасность, требуя альтернативного имени субъекта, которого нет у многих сообщений, поскольку это не требовалось, когда они были опубликованы в качестве ответа. Я предполагаю, что WAMP уже установлен.
Хотя эта часть не является обязательной, она облегчает выполнение команд в дальнейшем. Если вы пропустите этот шаг, вам нужно будет указать полный путь к openssl.exe, где вы будете выполнять команду. Если вы предпочитаете установить его, обновите путь openssl.exe в переменных среды.
Переменные среды -> Системные переменные -> Путь -> Правка -> Создать -> c: \ Program Files \ OpenSSL-Win64 \ bin
**ШАГ 3**
Создайте папку с именем «ключ» в c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/каталоге.
Создайте файл конфигурации для вашего CA MyCompanyCA.cnf с содержимым (вы можете изменить его по своему усмотрению):
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = root_ca
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
localityName = Locality Name (eg, city)
0.organizationName = Organization Name (eg, company)
organizationalUnitName = Organizational Unit Name (eg, section)
commonName = Common Name (eg, fully qualified host name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 64
[ root_ca ]
basicConstraints = critical, CA:true
Создайте файл конфигурации расширений MyCompanyLocalhost.ext для сертификата веб-сервера:
Примечание: это сложная часть. Если при редактировании этого файла вы допустите небольшую ошибку, SSL не будет работать. Сделайте копию этого прежде, чем Вы отредактируете это.
** ШАГ 8 **
Перезагрузите Wamp и Chrome. Localhost теперь безопасен: https: // localhost
Да, это работает. Я использовал шаги 1 - 3 из StephanieQ для генерации сертификата, а затем «openssl x509 -req -in server.csr -signkey server.key -out server.crt» для генерации файла * .crt с помощью cygwin.
b3wii
У меня нет httpd.conf, в какой файл я положил его? Вот что происходит, когда я помещаю этот текст внутрь apache2.conf:Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
Вы можете указать собственное исправление, поддомен.
Вы можете самостоятельно разместить его, так что вы можете использовать свой собственный домен и быть на будущее, даже если сервис не работает.
Я не мог поверить, когда я нашел эту услугу. Он предлагает все, и это самый простой в использовании. Если бы был такой простой и безболезненный инструмент для каждой проблемы ...
Это не работает больше в 2020 году, страница загружается вечно. Однако по какой-то причине команда SSH все еще работает ...?
Аарон Франке
1
Запуск Apache на Windows 10 здесь. Я не мог заставить Chrome доверять сертификату, сделанному в верхнем ответе Саймона. В итоге я использовал PowerShell для создания самозаверяющего сертификата.
Шаг 1 - Генерация самоподписанного сертификата
В PowerShell New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"1
Шаг 2 - Настройка и экспорт сертификата
Введите Certificateв строке поиска Windows, щелкните Manage Computer Certificatesэлемент панели управления, который предлагается.
В появившейся программе управления сертификатами (certlm) вы должны увидеть localhostключ под Personal >> Certificates.
Я скопировал этот сертификат в Trusted Root Certification Authorities. Я буду честен в этом, я не уверен, если это необходимо.
Выбрав вновь скопированный сертификат, дважды щелкните по нему (сертификат localhost). В модальном сертификате щелкните Detailsвкладку, затем Copy to File...кнопку.
Это вызовет и Экспорт мастера, я решил экспортировать закрытый ключ, нажмите кнопку Далее. Я также решил Export all extended properties(опять же, я не уверен, было ли это необходимо). Я решил использовать простой пароль ( pass) и шифрование по умолчанию. Выберите папку для экспорта и назовите файл. Вы всегда можете переместить и переименовать файл, если это необходимо. Для простоты давайте скопируем его в вашу папку conf под вашей установкой Apache (в моем случае:) C:\apache\confи назовите файл myCert(полученный файл будет .pfxфайлом)
Шаг 3 - Конвертируйте .pfxфайл для использования с Apache
Отсюда я в основном следовал учебник здесь , но я добавлю инструкции здесь (переделаны для наших настроек) в случае, если сайт идет вниз.
Откройте командную строку в /apache/conf/папке.
Выполните следующие команды: Примечание. Предполагается, что вы находитесь openssl.exeв binпапке в корневой папке apache (это должно быть стандартное / по умолчанию)
Вам будет предложено ввести пароль, введите то, что вы вводите для шага 2 при экспорте .pfxфайла. В моем случае это так pass. Я ввел тот же пароль для фразы PEM и еще раз для подтверждения. Это создаст новый файл с именем privateKey.pemв вашей папке conf.
Снова вам будет предложено ввести пароль ( Enter pass phrase for privateKey.pem:), используйте пароль, который вы установили privateKey.pem. (В моем случае pass)
Вы должны увидеть сообщение writing RSA keyс новым файлом private.pemв вашей conf/папке. Это будет ваш SSLCertificateKeyFile.
Теперь для генерации соответствующего сертификата сервера. Бегать:
Вам будет предложено ввести пароль, введите то, что вы вводите для шага 2 при экспорте .pfxфайла. Введите его, и теперь у вас будет файл с именем EntrustCert.pemв вашей confпапке. Это ваш SSLCertificateFile
Шаг 4 - Настройка httpd.conf
Используйте новые файлы, созданные как ключ и сертификат вашего сервера. Обязательно измените корневой каталог вашего документа на тот, где находятся ваши файлы!
Раскомментируйте Include conf/extra/httpd-ssl.conf(ПРИМЕЧАНИЕ. Убедитесь, что файл находится там!)
У меня также есть библиотеки curl и open ssl:
# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"
Эти модули не должны быть необходимыми, но я отмечу, что они включены: LoadModule rewrite_module modules/mod_rewrite.so LoadModule filter_module modules/mod_filter.so LoadModule deflate_module modules/mod_deflate.so
Шаг 5 - Конфиг httpd-ssl.conf
В extra/папке в conf/папке вы должны увидеть файл с именем httpd-ssl.conf.
5а. ИзменитьDocumentRoot - Измените значение DocumentRootпо умолчанию на каталог, в котором находятся ваши файлы.
5б. ИзменитьServerName - Измените значение ServerNameпо умолчанию (что-то вроде www.example.com:443) наlocalhost:443
5с. ИзменитеSSLCertificateFile
Изменить SSLCertificateFileс по умолчанию ( ${SRVROOT}/conf/server.crt) на${SRVROOT}/conf/EntrustCert.pem
5с. ИзменитеSSLCertificateKeyFile
Изменить SSLCertificateKeyFileс по умолчанию ( ${SRVROOT}/conf/server.key) на${SRVROOT}/conf/private.pem
Все вместе, в <VirtualHost _default_:443>теге.
# General setup for the virtual host
DocumentRoot "${SRVROOT}/htdocs/MYSITE"
ServerName localhost:443
ServerAdmin admin@example.com
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. Keep
# in mind that if you have both an RSA and a DSA certificate you
# can configure both in parallel (to also allow the use of DSA
# ciphers, etc.)
# Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt)
# require an ECC certificate which can also be configured in
# parallel.
SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
#SSLCertificateFile "${SRVROOT}/conf/server-dsa.crt"
#SSLCertificateFile "${SRVROOT}/conf/server-ecc.crt"
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
# ECC keys, when in use, can also be configured in parallel
SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-dsa.key"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-ecc.key"
Перезапустите Apache
После внесения этих изменений вы сможете перезагрузить Apache и перейти по адресу https: // localhost без предупреждения безопасности и небольшого замка!
и получить доступ к странице на любом устройстве, к которому подключена ваша сеть. Это очень удобно в таких случаях, как «вы должны тестировать HTML5 GeoLocation API в мобильном устройстве, а Chrome ограничивает API только в безопасных соединениях».
Я хотел бы добавить кое-что к очень хорошему ответу @CodeWarrior, который отлично работает в Chrome, но для Firefox требуется дополнительный шаг.
Поскольку Firefox не выдает сертификаты CA, которые Windows делает по умолчанию, вам нужно продолжить about:config, прокрутите вниз доsecurity.enterprise_roots.enabled и изменить его на true.
Теперь ваш сертификат должен рассматриваться как действительный и в Firefox.
Конечно, это только для целей разработки, так как доверие ssl является критически важной проблемой безопасности, и изменяйте эти параметры, только если вы знаете их последствия.
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
Наберите свой поддомен и номер порта, и вы готовы продолжитьhttps://youruniquesubdomain.serveo.net
Ответы:
Я только что попытался - мне нужно было протестировать код разработки на моем локальном хосте Apache в Windows . Это было WAAAY сложнее, чем должно быть. Но вот шаги, которые удалось сработать после долгой стрижки волос ...
Я обнаружил, что моя установка Apache идет с,
openssl.exe
что полезно. Если у вас нет копии, вам нужно ее скачать. Моя копия была вApache2\bin
папке, как я на нее ссылаюсь ниже.шаги:
Apache2\conf
папке..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Вы можете оставить все вопросы пустыми, кроме:
Когда это завершится, введите
..\bin\openssl rsa -in blarg.pem -out blarg.key
Создайте свой самозаверяющий сертификат, набрав:
..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
Откройте
conf\httpd.conf
файл Apache и убедитесь, что модуль SSL включен - в начале этой строки не должно быть хеша:LoadModule ssl_module modules/mod_ssl.so
Некоторые установки Apache помещают конфигурацию SSL в отдельный файл. Если это так, убедитесь, что файл SSL Conf включен. В моем случае мне пришлось раскомментировать эту строку:
Include conf/extra/httpd-ssl.conf
В конфиге SSL
httpd-ssl.conf
мне пришлось обновить следующие строки:SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
до
SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
(квадратные скобки в путанице запутывают модуль, поэтому нам нужно избегать их)
DocumentRoot
- установите это в папку для ваших веб-файловServerName
- имя сервераSSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Перезапустите Apache.
https://localhost/
в вашем браузере.Надеюсь, вы сделали это так далеко. Не стесняйтесь обновлять этот пост любой другой полезной информацией.
(Скриншоты любезно предоставлены Нилом Обремским и его полезной статьей - хотя сейчас она уже устарела.)
источник
Я использую ngrok ( https://ngrok.com/ ) для этого. ngrok - это инструмент командной строки, создающий туннель для localhost. Он создает как http, так и https соединение. После загрузки необходимо выполнить следующую команду:
(В версии 2 синтаксис: ngrok http 80. В версии 2 любой порт может быть туннелирован.)
Через несколько секунд он выдаст два URL:
Теперь оба URL указывают на локальный хост.
источник
вот самый простой способ сделать это
сначала скопируйте эти файлы server.crt & server.key (найдите в приложении) в ваш каталог apache / conf / ssl
затем откройте файл httpd.conf и добавьте следующую строку
источник
Для обеспечения безопасности информации, отправляемой на ваш веб-сервер и с него, рекомендуется включить шифрование связи между клиентами и сервером. Это часто называют SSL .
Итак, давайте настроим HTTPS с самозаверяющим сертификатом на Apache2. Я собираюсь перечислить шаги, которые вы должны выполнить:
Должен вывести
Убедитесь, что вы получаете страницу по умолчанию для apache2, как это.
Пожалуйста, заполните информацию соответственно, как показано ниже.
mykey.key и mycert.pem должны быть созданы в вашем текущем рабочем каталоге.
Это должно вывести вот так
Найдите эти две строки и замените их вашими сертификатом и ключом.
начальный
окончательный
Он должен вывести что-то вроде этого с предупреждением о том, что страница, которую вы собираетесь просматривать, небезопасна, поскольку мы настроили сервер с самозаверяющим сертификатом.
источник
default-ssl.conf
как есть. Я собирался переименоватьmycert
вssl-cert-snakeoil
но этот файл уже существует , так что я просто использовал это! Так что я смог безопасно пропустить два шага в Debian.Windows + Apache 2.4, например:
раскомментируйте ssl_module в вашем
httpd.conf
файле.слушайте 443 порт, как 80 порт в вашем
httpd.conf
файле.Снимите комментарий Включить виртуальные хосты в ваш
httpd.conf
файл.добавить VirtualHost в свой
conf/extra/httpd-vhosts.conf
только номер порта
443
иSSL......
линии отличаются от обычного http config.сохраните ваш конфигурационный файл и перезапустите службу Apache. тогда вы можете посетить https: // localhost /
Веб-браузер предупредит вас, что в первый раз это небезопасно, просто нажмите «Продолжить».
источник
На самом деле это довольно просто, если у вас есть удобная установка openssl. (На какой ты платформе?)
Предполагая, что вы используете Linux / Solaris / Mac OS / X, мини-HOWTO Van Apache SSL / TLS имеет превосходное руководство, которое я не буду здесь воспроизводить.
Тем не менее, резюме заключается в том, что вы должны создать самозаверяющий сертификат. Поскольку вы используете apache для localhost, предположительно для разработки (то есть не для публичного веб-сервера), вы будете знать, что можете доверять самозаверяющему сертификату и игнорировать предупреждения, которые ваш браузер будет выдавать вам.
источник
Это должна быть работа Ubuntu, похожая на Mint с Apache2
Это хорошее руководство, поэтому следуя этому
https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
и оставив ваш ssl.conf как этот или похожий
ты можешь его достать.
Надеюсь, что эта помощь для Linux
источник
2020 Обновление
Я публикую этот ответ, так как я сам боролся с этим, и Chrome обновил свою безопасность, требуя альтернативного имени субъекта, которого нет у многих сообщений, поскольку это не требовалось, когда они были опубликованы в качестве ответа. Я предполагаю, что WAMP уже установлен.
ШАГ 1
Скачать OpenSSL Light и установите
** ШАГ 2 (необязательно) **
Хотя эта часть не является обязательной, она облегчает выполнение команд в дальнейшем. Если вы пропустите этот шаг, вам нужно будет указать полный путь к openssl.exe, где вы будете выполнять команду. Если вы предпочитаете установить его, обновите путь openssl.exe в переменных среды.
**ШАГ 3**
Создайте папку с именем «ключ» в
c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/
каталоге.Создайте файл конфигурации для вашего CA MyCompanyCA.cnf с содержимым (вы можете изменить его по своему усмотрению):
Создайте файл конфигурации расширений MyCompanyLocalhost.ext для сертификата веб-сервера:
** ШАГ 4 **
Выполните эти команды в указанном порядке для генерации ключа и сертификатов:
В результате вы получите файлы MyCompanyCA.cer , MyCompanyLocalhost.cer и MyCompanyLocalhost.pvk .
** ШАГ 5 **
Установите MyCompanyCA.cer под
Чтобы установить MyCompanyLocalhost.cer, просто дважды щелкните по нему.
** ШАГ 6 **
Откройте
c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/httpd.conf
и снимите комментарий (удалите #) следующие 3 строки:** ШАГ 7 **
Откройте
c:/wamp64/bin/apache/apache2.4.37/conf/extra/httpd-ssl.conf
и измените все параметры на показанные ниже:Примечание: это сложная часть. Если при редактировании этого файла вы допустите небольшую ошибку, SSL не будет работать. Сделайте копию этого прежде, чем Вы отредактируете это.
** ШАГ 8 **
Перезагрузите Wamp и Chrome. Localhost теперь безопасен: https: // localhost
источник
Это очень просто,
просто выполните следующие команды
Вот и все, вы сделали.
Если вы хотите использовать SSL (всегда использовать https), отредактируйте файл:
и добавить эту одну строку
затем перезагрузите снова
источник
systemctl reload apache2
заsudo a2ensite default-ssl.conf
.Это HowTo для CentOS было легко понять и заняло около 5 минут: https://wiki.centos.org/HowTos/Https
Я не буду подробно описывать каждый шаг здесь, но основные шаги:
1.) Установите модуль openssl для apache, если он еще не установлен
2.) Создайте самоподписанный сертификат
- На этом этапе вы сможете успешно зайти на https: // localhost
3.) При необходимости настройте виртуальный хост
источник
Это работало на Windows 10 с Apache24:
1 - Добавить это внизу
C:/Apache24/conf/httpd.conf
2 - Добавьте
server.crt
иserver.key
файлы вC:/Apache24/conf/ssl
папке. Посмотрите другие ответы на этой странице, чтобы найти эти 2 файла.Это оно!
источник
httpd.conf
, в какой файл я положил его? Вот что происходит, когда я помещаю этот текст внутрьapache2.conf
:Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
ТЛ; др
И ваша локальная среда может быть доступна с https://youruniquesubdomain.serveo.net
Сервео лучший
Я не мог поверить, когда я нашел эту услугу. Он предлагает все, и это самый простой в использовании. Если бы был такой простой и безболезненный инструмент для каждой проблемы ...
источник
Запуск Apache на Windows 10 здесь. Я не мог заставить Chrome доверять сертификату, сделанному в верхнем ответе Саймона. В итоге я использовал PowerShell для создания самозаверяющего сертификата.
Шаг 1 - Генерация самоподписанного сертификата
В PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
1Шаг 2 - Настройка и экспорт сертификата
Введите
Certificate
в строке поиска Windows, щелкнитеManage Computer Certificates
элемент панели управления, который предлагается.В появившейся программе управления сертификатами (certlm) вы должны увидеть
localhost
ключ подPersonal >> Certificates
.Я скопировал этот сертификат в
Trusted Root Certification Authorities
. Я буду честен в этом, я не уверен, если это необходимо.Выбрав вновь скопированный сертификат, дважды щелкните по нему (сертификат localhost). В модальном сертификате щелкните
Details
вкладку, затемCopy to File...
кнопку.Это вызовет и Экспорт мастера, я решил экспортировать закрытый ключ, нажмите кнопку Далее. Я также решил
Export all extended properties
(опять же, я не уверен, было ли это необходимо). Я решил использовать простой пароль (pass
) и шифрование по умолчанию. Выберите папку для экспорта и назовите файл. Вы всегда можете переместить и переименовать файл, если это необходимо. Для простоты давайте скопируем его в вашу папку conf под вашей установкой Apache (в моем случае:)C:\apache\conf
и назовите файлmyCert
(полученный файл будет.pfx
файлом)Шаг 3 - Конвертируйте
.pfx
файл для использования с ApacheОтсюда я в основном следовал учебник здесь , но я добавлю инструкции здесь (переделаны для наших настроек) в случае, если сайт идет вниз.
Откройте командную строку в
/apache/conf/
папке.Выполните следующие команды: Примечание. Предполагается, что вы находитесь
openssl.exe
вbin
папке в корневой папке apache (это должно быть стандартное / по умолчанию)Вам будет предложено ввести пароль, введите то, что вы вводите для шага 2 при экспорте
.pfx
файла. В моем случае это такpass
. Я ввел тот же пароль для фразы PEM и еще раз для подтверждения. Это создаст новый файл с именемprivateKey.pem
в вашей папке conf.Затем запустите
Снова вам будет предложено ввести пароль (
Enter pass phrase for privateKey.pem:
), используйте пароль, который вы установилиprivateKey.pem
. (В моем случаеpass
)Вы должны увидеть сообщение
writing RSA key
с новым файломprivate.pem
в вашейconf/
папке. Это будет ваш SSLCertificateKeyFile.Теперь для генерации соответствующего сертификата сервера. Бегать:
Вам будет предложено ввести пароль, введите то, что вы вводите для шага 2 при экспорте
.pfx
файла. Введите его, и теперь у вас будет файл с именемEntrustCert.pem
в вашейconf
папке. Это ваш SSLCertificateFileШаг 4 - Настройка
httpd.conf
Используйте новые файлы, созданные как ключ и сертификат вашего сервера. Обязательно измените корневой каталог вашего документа на тот, где находятся ваши файлы!
Также в
httpd.conf
:LoadModule ssl_module modules/mod_ssl.so
не прокомментировано (нет#
впереди)LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule http2_module modules/mod_http2.so
Include conf/extra/httpd-ssl.conf
(ПРИМЕЧАНИЕ. Убедитесь, что файл находится там!)У меня также есть библиотеки curl и open ssl:
Эти модули не должны быть необходимыми, но я отмечу, что они включены:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
Шаг 5 - Конфиг
httpd-ssl.conf
В
extra/
папке вconf/
папке вы должны увидеть файл с именемhttpd-ssl.conf
.5а. Изменить
DocumentRoot
- Измените значениеDocumentRoot
по умолчанию на каталог, в котором находятся ваши файлы.5б. Изменить
ServerName
- Измените значениеServerName
по умолчанию (что-то вродеwww.example.com:443
) наlocalhost:443
5с. Измените
SSLCertificateFile
Изменить
SSLCertificateFile
с по умолчанию (${SRVROOT}/conf/server.crt
) на${SRVROOT}/conf/EntrustCert.pem
5с. Измените
SSLCertificateKeyFile
Изменить
SSLCertificateKeyFile
с по умолчанию (${SRVROOT}/conf/server.key
) на${SRVROOT}/conf/private.pem
Все вместе, в
<VirtualHost _default_:443>
теге.Перезапустите Apache
После внесения этих изменений вы сможете перезагрузить Apache и перейти по адресу https: // localhost без предупреждения безопасности и небольшого замка!
Я надеюсь, что это поможет кому-то! 😊
Источники:
1.) Ответ Аури Рахимзаде на создание самозаверяющего сертификата
2.) Доверьте Datacard - Как мне преобразовать .pfx для использования с сервером Apache?
источник
Другой простой метод - использование Python Server в Ubuntu.
Сгенерируйте server.xml с помощью следующей команды в терминале:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Примечание. Предполагается, что у вас установлен openssl .
Сохраните приведенный ниже код в файле с именем
simple-https-server.py
в любом каталоге, в котором вы хотите запустить сервер.Запустите сервер из терминала:
python simple-https-server.py
Посетите страницу по адресу:
https://localhost:4443
Дополнительные примечания :
Вы можете изменить порт в
simple-https-server.py
файле в строкеhttpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
Вы можете изменить
localhost
свой IP в той же строке выше:httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
и получить доступ к странице на любом устройстве, к которому подключена ваша сеть. Это очень удобно в таких случаях, как «вы должны тестировать HTML5 GeoLocation API в мобильном устройстве, а Chrome ограничивает API только в безопасных соединениях».
Суть: https://gist.github.com/dergachev/7028596
http://www.piware.de/2011/01/creating-an-https-server-in-python/
источник
Для тех, кто использует macOS, это отличное руководство https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions для настройки вашей локальной среды веб-разработки. В своей третьей части https://getgrav.org/blog/macos-sierra-apache-ssl Энди Миллер объясняет, как настроить apache с самозаверяющим сертификатом:
Это ключевая команда:
Но есть несколько шагов, которые вы должны выполнить, так что проверьте это и удачи! ;)
источник
Я хотел бы добавить кое-что к очень хорошему ответу @CodeWarrior, который отлично работает в Chrome, но для Firefox требуется дополнительный шаг.
Поскольку Firefox не выдает сертификаты CA, которые Windows делает по умолчанию, вам нужно продолжить
about:config
, прокрутите вниз доsecurity.enterprise_roots.enabled
и изменить его на true.Теперь ваш сертификат должен рассматриваться как действительный и в Firefox.
Конечно, это только для целей разработки, так как доверие ssl является критически важной проблемой безопасности, и изменяйте эти параметры, только если вы знаете их последствия.
источник