Как разрешить HTTPS для Apache на localhost?

Мне было предложено настроить HTTPS с самозаверяющим сертификатом на Apache на localhost, но как я на самом деле это делаю? Я понятия не имею.

Ответ 1

Я только что попытался это сделать - мне нужно было проверить код разработки на localhost 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

  • Создайте свой самозаверяющий сертификат, набрав:
    ..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365

  • Откройте файл Apache conf\httpd.conf и убедитесь, что модуль 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/ в свой браузер.

Надеюсь, вы сделали это так далеко. Не стесняйтесь обновлять этот пост любой другой полезной информацией.

(Скриншоты предоставлены Нилом Обремским и его полезной статьей - хотя теперь довольно устаревшие.)

Ответ 2

Для этого я использую ngrok (https://ngrok.com/). ngrok - инструмент командной строки и создает туннель для localhost. Он создает соединение HTTP и https. После его загрузки необходимо выполнить следующую команду:

ngrok http 80

(В версии 2 синтаксис: ngrok http 80. В версии 2 любой порт может быть туннелирован.)

Через несколько секунд он даст два URL:

http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com

Теперь оба URL указывают на localhost.

Ответ 3

вот самый простой способ сделать это

сначала скопируйте эти файлы server.crt & server.key (найдите в приложении) в ваш каталог apache/conf/ssl

затем откройте файл httpd.conf и добавьте следующую строку

Listen 80
Listen 443

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot "d:/wamp/www"  #your wamp www root dir
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.crt"
    SSLCertificateKeyFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.key"
</VirtualHost>

Ответ 4

Windows + Apache 2.4, например:

  • uncomment ssl_module в вашем файле httpd.conf.

    LoadModule ssl_module modules/mod_ssl.so
    
  • прослушать 443-порт как 80-портовый файл httpd.conf.

    Listen 80
    Listen 443
    
  • uncomment Включить виртуальные хосты в ваш 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.

сохранить конфигурационный файл и перезапустить службу apache. то вы можете посетить https://localhost/

Веб-браузер предупредит вас, что он небезопасен в первый раз, просто выберите вариант.

Ответ 5

Чтобы защитить безопасность информации, отправляемой на ваш веб-сервер и с него, рекомендуется включить шифрование связи между клиентами и сервером. Это часто называют SSL.

Итак, давайте настроим HTTPS с самозаверяющим сертификатом на Apache2. Я собираюсь перечислить шаги, которые вы должны выполнить:

  • Установите веб-сервер apache2 на свой компьютер. Для машины linux откройте терминал и наберите

sudo apt-get установить apache2

  • После успешной установки проверьте состояние службы apache2, выполнив команду

sudo service apache2 status

Должен выводить

apache2 service status

  • Перейдите в браузер и введите

HTTP://локальный: 80

Убедитесь, что вы получаете страницу по умолчанию для apache2, как это.

default output of apache2

  • Для шифрования веб-соединения нам нужен сертификат от CA (центра сертификации) или мы можем использовать самозаверяющие сертификаты. Давайте создадим самозаверяющий сертификат с помощью следующей команды.

openssl req -x509 -newkey rsa: 2048 -keyout mykey.key -out mycert.pem -days 365 -nodes

Пожалуйста, заполните информацию соответственно, как показано ниже.

create self signed certificate using openssl

mykey.key и mycert.pem должны быть созданы в вашем текущем рабочем каталоге.

  • Было бы хорошо, если бы мы перемещали сертификаты и ключи в одном месте, и веб-серверу apache2 было бы легко их найти. Итак, давайте выполним следующие команды

sudo cp mycert.pem/etc/ssl/certs

sudo cp mykey.key/etc/ssl/private

  • Позвольте включить режим SSL на вашем сервере

sudo a2enmod ssl

Должно вывести вот так

enable ssl

  • Давайте настроим apache2 для использования самозаверяющего сертификата и ключа, которые мы сгенерировали выше.

sudo vi/etc/apache2/sites-available/default-ssl.conf

Найдите эти две строки и замените их вашими сертификатом и ключом.

начальный

default-conf

окончательный

after config changes

  • Включить сайт

cd/etc/apache2/sites-available/

sudo a2ensite default-ssl.conf

  • Перезапустите сервис apache2

перезапуск службы sudo apache2

  • Проверьте веб-сервер apache2 по HTTPS. Снова откройте браузер и введите

https://локальный: 443

Он должен вывести что-то вроде этого с предупреждением о том, что страница, которую вы собираетесь просматривать, небезопасна, поскольку мы настроили сервер с самозаверяющим сертификатом.

enter image description here

  • Поздравляем вы настроили apache2 с HTTPS конечных точек, теперь нажмите на передовойдобавить исключениеподтвердить исключение безопасности, вы увидите страницу по умолчанию снова.

page after adding exception

Ответ 6

На самом деле это довольно просто, если у вас есть установка openssl. (На какой платформе вы работаете?)

Предполагая, что вы работаете в linux/solaris/mac os/x, Van Apache SSL/TLS mini-HOWTO имеет отличное пошаговое руководство, которое Я не буду воспроизводить здесь.

Однако резюме состоит в том, что вы должны создать самозаверяющий сертификат. Поскольку вы используете apache для localhost, предположительно для разработки (т.е. Не для общедоступного веб-сервера), вы будете знать, что можете доверять самозаверяющему сертификату и можете игнорировать предупреждения, которые ваш браузер будет бросать вам.

Ответ 7

Это должна быть работа Ubuntu, Mint, аналогичная Apache2

Это хороший гид, поэтому следуя этому

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

и оставляя ваш ssl.conf похожим на этот или похожий похожий

<VirtualHost _default_:443>
        ServerAdmin [email protected]
        ServerName localhost
        ServerAlias www.localhost.com

        DocumentRoot /var/www


    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

вы можете получить его.

Надеемся на эту помощь для linuxer

Ответ 8

Это очень просто,

просто запустите следующие команды

sudo a2enmod ssl

sudo service apache2 restart

sudo a2ensite default-ssl.conf

Чтобы это сделать, вы закончили.

Если вы хотите заставить SSL (всегда использовать https), отредактируйте файл:

sudo nano /etc/apache2/sites-available/000-default.conf

и добавьте эту строку

<VirtualHost *:80>
        . . .

        Redirect "/" "https://your_domain_or_IP/"

        . . .
</VirtualHost>

затем снова перезапустите

sudo service apache2 restart

Ответ 9

Это HowTo для CentOS было легко следовать и заняло всего около 5 минут: https://wiki.centos.org/HowTos/Https

Я не буду подробно описывать каждый шаг здесь, но основные шаги:

1.) Установите модуль openssl для apache, если он еще не установлен

2.) Создайте самозаверяющий сертификат

- На этом этапе вы сможете посетить https://localhost успешно

3.) При необходимости настройте виртуальный хост

Ответ 10

Это работало на Windows 10 с Apache24:

1 - Добавьте это внизу C: /Apache24/conf/httpd.conf

Listen 443
<VirtualHost *:443>
    DocumentRoot "C:/Apache24/htdocs"
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"
</VirtualHost>

2 - Добавьте файлы server.crt и server.key в папку C: /Apache24/conf/ssl. Посмотрите другие ответы на этой странице, чтобы найти эти 2 файла.

Это!

Ответ 11

ТЛ; др

ssh -R youruniquesubdomain:80:localhost:3000 serveo.net

И ваша локальная среда может быть доступна с https://youruniquesubdomain.serveo.net

Сервео лучший

  • Нет регистрации.
  • Нет установки.
  • Имеет HTTPS.
  • Доступно во всем мире.
  • Вы можете указать собственное исправление, поддомен.
  • Вы можете самостоятельно разместить его, так что вы можете использовать свой собственный домен и быть на будущее, даже если сервис не работает.

Я не мог поверить, когда я нашел эту услугу. Он предлагает все, и это самый простой в использовании. Если бы был такой простой и безболезненный инструмент для любой проблемы...

Ответ 12

2019 Обновление

Я публикую этот ответ, так как я сам боролся с этим, и Chrome обновил свою безопасность, требуя альтернативного имени субъекта, которого нет у многих сообщений, поскольку это не требовалось, когда они были опубликованы в качестве ответа. Я предполагаю, что WAMP уже установлен.

ШАГ 1

Скачайте OpenSSL Light и установите


ШАГ 2 (необязательно)

Хотя эта часть не является обязательной, она облегчает выполнение команд в дальнейшем. Если вы пропустите этот шаг, вам нужно будет указать полный путь к openssl.exe, где вы будете выполнять команду. Если вы предпочитаете установить его, обновите путь openssl.exe в переменных среды.

Переменные среды → Системные переменные → Путь → Правка → Создать → c:\Program Files\OpenSSL-Win64\bin


ШАГ 3

Создайте папку с именем "key" в 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 для сертификата веб-сервера:

subjectAltName = @alt_names
extendedKeyUsage = serverAuth

[alt_names]
DNS.1   = localhost
DNS.2   = mycy.mycompany.com


ШАГ 4

Выполните эти команды в указанном порядке для генерации ключа и сертификатов:

openssl req -x509 -newkey rsa:2048 -out MyCompanyCA.cer -outform PEM -keyout MyCompanyCA.pvk -days 10000 -verbose -config MyCompanyCA.cnf -nodes -sha256 -subj "/CN=MyCompany CA"
openssl req -newkey rsa:2048 -keyout MyCompanyLocalhost.pvk -out MyCompanyLocalhost.req -subj /CN=localhost -sha256 -nodes
openssl x509 -req -CA MyCompanyCA.cer -CAkey MyCompanyCA.pvk -in MyCompanyLocalhost.req -out MyCompanyLocalhost.cer -days 10000 -extfile MyCompanyLocalhost.ext -sha256 -set_serial 0x1111

В результате у вас будут файлы 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 строки:

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so


ШАГ 7

Откройте c: /wamp64/bin/apache/apache2.4.37/conf/extra/httpd-ssl.conf и измените все параметры на показанные ниже:

Directory "c:/wamp64/www"
DocumentRoot "c:/wamp64/www"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "c:/wamp64/bin/apache/apache2.4.27/logs/error.log"
TransferLog "c:/wamp64/bin/apache/apache2.4.27/logs/access.log"
SSLCertificateFile "c:/wamp64/bin/apache/apache2.4.27/conf/key/MyCompanyLocalhost.cer"
SSLCertificateKeyFile "c:/wamp64/bin/apache/apache2.4.27/conf/key/MyCompanyLocalhost.pvk"
SSLSessionCache "shmcb:c:/wamp64/bin/apache/apache2.4.27/logs/ssl_scache(512000)"
CustomLog "c:/wamp64/bin/apache/apache2.4.27/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Примечание: это сложная часть. Если вы сделаете небольшую ошибку при редактировании этого файла, SSL не будет работать. Сделайте копию этого прежде, чем отредактировать это.


ШАГ 8

Перезапустите Wamp и Chrome. Localhost теперь защищен: https://localhost

Ответ 13

Другим простым методом является использование Python Server в Ubuntu.

  • Создайте server.xml со следующей командой в терминале:

    openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

    Примечание. Предположим, что вы установили openssl.

  • Сохраните ниже код в файле с именем simple-https-server.py в любом каталоге, который вы хотите запустить.

    import BaseHTTPServer, SimpleHTTPServer
    import ssl
    
    httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
    httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
    httpd.serve_forever()
    
  • Запустите сервер с терминала:

    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)

    и получить доступ к странице на любом устройстве, подключенном к вашей сети. Это очень удобно в таких случаях, как "вам нужно протестировать API-интерфейс GeoLocation HTML5 на мобильном устройстве, а Chrome ограничивает API только в защищенных соединениях".

Gist: https://gist.github.com/dergachev/7028596

http://www.piware.de/2011/01/creating-an-https-server-in-python/

Ответ 14

Для тех, кто использует macOS, это отличный путеводитель https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions, чтобы настроить среду локального веб-разработчика. В своей третьей части https://getgrav.org/blog/macos-sierra-apache-ssl Энди Миллер объясняет, как настроить apache с самозаверяющим сертификатом:

Это ключевая команда:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

Но есть несколько шагов, за которыми вам нужно следовать, поэтому проверьте это и удачи!;)

Ответ 15

Запуск 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 центры 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 (это должен быть стандарт/стандарт)

..\bin\openssl pkcs12 -in myCert.pfx -nocerts -out privateKey.pem

Это запросит у вас пароль, введите то, что вы вводите для шага 2 при экспорте файла .pfx. В моем случае это pass. Я ввел тот же пароль для фразы PEM и еще раз для подтверждения. Это создаст новый файл с именем privateKey.pem в вашей папке conf.

Затем беги

..\bin\openssl rsa -in privateKey.pem -out private.pem

Снова вам будет предложено ввести пароль (Enter pass phrase for privateKey.pem:, используйте пароль, который вы установили для privateKey.pem. (В моем случае pass)
Вы должны увидеть сообщение с writing RSA key и новым файлом с именем private.pem в вашей папке conf/. Это будет ваш SSLCertificateKeyFile.

Теперь для генерации соответствующего сертификата сервера. Бежать:

..\bin\openssl pkcs12 -in myCert.pfx -clcerts -nokeys -out EntrustCert.pem

Это запросит у вас пароль, введите то, что вы вводите для шага 2 при экспорте файла .pfx. Введите его, и теперь у EntrustCert.pem в папке conf будет файл EntrustCert.pem. Это ваш SSLCertificateFile

Шаг 4 - Настройте httpd.conf

Используйте новые файлы, созданные как ваш ключ сервера и сертификат. Обязательно измените корневой каталог вашего документа на тот, где находятся ваши файлы!

ServerName localhost:80
Protocols h2 h2c http/1.1
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

<VirtualHost _default_:443>
  ServerName localhost:443
  DocumentRoot ${SRVROOT}/htdocs/MYSITE
  SSLEngine on
  SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
  SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
</VirtualHost>

Также в 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:

# 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 [email protected]
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 без предупреждения безопасности и небольшого замка!

Secured localhost

Я надеюсь, что это помогает кому-то! 😊

Источники:
1.) Ответ Аури Рахимзаде о создании самозаверяющего сертификата
2.) Доверьте Datacard - Как я могу преобразовать .pfx для использования с сервером Apache?

Ответ 16

Я хотел бы добавить кое-что к очень хорошему ответу @CodeWarrior, который отлично работает в Chrome, но для Firefox требуется дополнительный шаг.

Поскольку Firefox не использует сертификаты CA, которые Windows делает по умолчанию, вам нужно перейти about:config, прокрутить вниз до security.enterprise_roots.enabled и изменить его на true.

Теперь ваш сертификат должен считаться действительным и в Firefox.

Конечно, это только для целей разработки, так как доверие ssl является критически важной проблемой безопасности, и изменяйте эти параметры только в том случае, если вам известны последствия.