4

я пытаюсь включить ssl на своем веб-сайте, я использую wamp для живого сайта, я прочитал ОЧЕНЬ много учебных пособий о том, как включить SSL, но не смог найти ни одного для использования сертификатов от launchsl.com.

каждый модуль, который должен быть включен, я считаю, что включен, у меня в настоящее время даже есть

Include conf/extra/httpd-ssl.conf

un comment в моем httpd.conf, но прокомментировал КАЖДУЮ строку в моем httpd-ssl.conf ради моего сайта.

я прошёл каждую строку по отдельности в своей проверке httpd-ssl и прокомментировал строки 1 на 1, и у меня не возникло никаких проблем, пока я не прокомментировал строку виртуальных хостов (да, я делал это, сохраняя и перезапуская свой сервер каждый раз)

Я понятия не имею, что здесь происходит, хотя, у меня есть 4 файла, которые я сохранил с StartSL, CRT для моего сайта ... так что я надеюсь, что кто-то здесь может быть в состоянии помочь. ниже мой httpd-ssl.conf

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog  builtin
SLSessionCache         "dbm:Z:/wamp/logs/ssl_scache"
SSLSessionCache        "shmcb:Z:/wamp/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

Listen 443

AddType application/x-x509-ca-cert .crt  
AddType application/x-pkcs7-crl    .crl  
SSLPassPhraseDialog  builtin  
SSLSessionCache        "shmcb:Z:/wamp/bin/apache/Apache2.2.11/logs/ssl_scache(512000)"  
SSLSessionCacheTimeout  300  
SSLMutex default  

NameVirtualHost *:443  

<VirtualHost *:443>  
ServerName "dirtrif.com"  
DocumentRoot "Z:/wamp/www/"  

SSLEngine on  
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCACertificatePath "Z:/wamp/OpenSSL/certs/"
SSLCACertificateFile "Z:/wamp/OpenSSL/certs/public.crt"
SSLCACertificateFile "Z:/wamp/OpenSSL/certs/ca.pem"
SSLCertificateKeyFile "Z:/wamp/OpenSSL/certs/ssl.key"
SSLCertificateChainFile "Z:/wamp/OpenSSL/certs/sub.class1.server.ca.pem"
</VirtualHost>

я также хотел бы отметить: я запускаю apache 2.4.4, и я уже перезаписал файлы в apache при загрузке openSSL с http://slproweb.com/products/Win32OpenSSL.html (потому что я где-то читал, чтобы это сделать))

Кроме того, мой сайт на самом деле является живым сайтом с моего компьютера, у меня открыт порт 80, и порт 443 имеет ту же настройку, что и 80, но по какой-то причине canyouseeme.org не видит порт 443 =/

1 ответ1

9

Как настроить WAMPServer для использования HTTPS SSL

* Это не тривиальный процесс. Надеемся, что это руководство поможет вам работать с SSL. Однако настроить его правильно, как только он заработает, ПОЛНОСТЬЮ ВАС.

Дополнительное чтение для всех, кто путешествует по этой дороге

В порядке,

Я основал это руководство на создании сайта под названием www.wamphelpers.dev Так что, где бы вы ни увидели, это имя меняется на имя сайта, которое вы пытаетесь защитить.

Я начал с создания незащищенного сайта в \wamp \www \wamphelpers

добавил виртуальный хост для этого сайта, в httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    <Directory  "c:/wamp/www">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/wamphelpers"
    ServerName wamphelpers.dev
    ServerAlias www.wamphelpers.dev
    <Directory  "c:/wamp/www/wamphelpers">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

Добавил свое имя в C:\windows\system32\drivers\etc\hosts

127.0.0.1 wamphelpers.dev www.wamphelpers.dev
::1       wamphelpers.dev www.wamphelpers.dev

Теперь перезапустите dnscache следующим образом из командных окон, запущенных с помощью «Запуск от имени администратора».

net stop dnscache
net start dnscache

Затем создал простой скрипт в \wamp \www \wamphelpers \index.php

<?php
    echo 'Hello, this is the WAMPHELPERS.DEV site homepage';
?>

Теперь перезапустите Apache и убедитесь, что ваш простой незащищенный сайт работает, before continuing


Инструментарий openssl. Openssl.exe, ssleay32.dll и libeay32.dll поставляются с папкой C:\wamp\bin\apache\apachex.yz \bin и находятся в ней. Это все, что вам нужно для создания самозаверяющего сертификата !!

ОДНАКО: Они не работают для меня ни на одной из версий Apache, которые я установил. Я всегда получаю это сообщение об ошибке.

сообщение об ошибке

Где порядковый номер изменился в зависимости от папки версии Apache, в которой я находился.

Если вы получили эту ошибку, не беспокойтесь, это то, что вам нужно сделать.

установить последнюю версию OPENSSL TOOLKIT

Это можно получить здесь

Выберите последнюю версию Win32 OpenSSLv xxx Light, так как это все, что вам нужно.

Это загрузит файл .exe, который вы можете запустить для установки этого инструментария.

Он задаст следующий вопрос, я предлагаю вам ответить на него так, чтобы в итоге вы не установили что-то в C:\windows\system32. В конце концов, это инструментарий, и он меняется довольно часто. Лучше всего держать эти вещи отдельно и не делать их глобальными.

openssl установить предложение

После того, как он установлен (в любую папку, указанную при установке), вы должны быть готовы начать процесс генерации ключей и сертификатов!


Генерация ключей и сертификатов.

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

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

Инструментарий openssl используется для генерации закрытого ключа RSA и CSR (запроса на подпись сертификата), который будет использоваться для нашего сертификата. Первым шагом является создание вашего закрытого ключа RSA. Этот ключ является 1024-битным ключом RSA, который зашифрован с использованием Triple-DES и хранится в формате PEM, чтобы его можно было прочитать в виде текста ASCII.

Откройте окно командной строки (окно DOS), используя [b] Запуск от имени администратора [/b]. Перейдите в каталог, в который вы установили OpenSSL Toolkit выше. В моем случае это

CD c:\apps\OpenSSL-Win32\bin

Сделать папку для вывода, чтобы положить в (чтобы сохранить папку bin аккуратно) Я использовал веб-сайт

md website

Теперь введите эту команду:

openssl genrsa -out website\server.key 2048

Это должно было создать файл в папке сайта с именем privkey.pem, без ключа пароля, проверьте, существует ли он.

Шаг 2. Создайте CSR (запрос на подпись сертификата)

Во время создания CSR вам будет предложено ввести несколько частей информации. Это атрибуты сертификата X.509. Одной из подсказок будет «Общее имя (например, полное доменное имя сервера или ВАШЕ имя) []:». Важно, чтобы в этом поле было указано полное доменное имя сервера, защищаемого с помощью SSL. Таким образом, если защищаемым веб-сайтом будет https://www.wamphelpers.dev , введите в этом приглашении www.wampheplers.dev .

Ничего не вводите в вопрос: пароль для вызова []: ] Просто нажмите Enter. Если вы введете здесь парольную фразу при запуске Apache с настроенным SSL, Apache не запустится и выдаст следующее сообщение об ошибке: -

[ошибка] Init: встроенная функция SSLPassPhraseDialog не поддерживается в Win32

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

Команда для генерации CSR выглядит следующим образом:

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


Example question and answers:
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]: Hampshire
Locality Name (eg, city) []: Portsmouth
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Wamp Helpers Ltd
Organizational Unit Name (eg, section) []: Information Technology
Common Name (e.g. server FQDN or YOUR name) []: www.wamphelpers.dev
Email Address []: me@wamphelpers.dev

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ( leave blank just hit the enter key )
An optional company name []: ( leave blank just hit the enter key )

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

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

ПРЕДВАРИТЕЛЬНОЕ ПРЕДУПРЕЖДЕНИЕ. Этот сертификат приведет к ошибке в клиентском браузере, в результате чего подписывающий центр сертификации неизвестен и не является доверенным. Это неизбежно, так как мы сами подписываем сертификат, но, конечно, сеть доверия не знает, кто мы. См. Пример далее в этом документе, показывающий, как сообщить браузеру, что вы действительно доверяете этому сертификату.

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


Example output:
Loading 'screen' into random state - done
Signature ok
subject=/C=GB/ST=Hampshire/L=Portsmouth/O=WampHelpers Ltd/OU=Information Technology/CN=www.wamphelpers.dev/emailAddress=riggsfolly@wamphelpers.dev
Getting Private key

Шаг 4: Установка закрытого ключа и сертификата

Создайте эти 2 каталога в соответствии с версией Apache, которую вы используете.

md c:\wamp\bin\apache\apachex.y.z\conf\ssl.key
md c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt

И скопируйте файл, который мы только что сгенерировали, следующим образом:

copy website\server.crt c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt
copy website\server.key c:\wamp\bin\apache\apachex.y.z\conf\ssl.key

Шаг 5: Настройте Apache для активации SSL

Отредактируйте httpd.conf, проверьте, что эта строка не закомментирована

LoadModule ssl_module modules/mod_ssl.so

Удалить комментарий "#" из этой строки также

Include conf/extra/httpd-ssl.conf

Затем переместите эту строку после этого блока .... так

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

Шаг 6: Настройте PHP для активации SSL

Отредактируйте свой php.ini (используйте меню wampmanager, чтобы редактировать правильное)

Удалить комментарий ';' из этой линии

extension=php_openssl.dll

Шаг 7. Настройте защищенные сайты Virtual Host

Да для всех вас Виртуальный Хозяин, не говоря, теперь вы не можете избежать этого процесса.

Отредактируйте \wamp\bin\apache\apachex.y.z\conf\httpd-ssl.conf

Этот файл выпущен Apache и содержит местоположение по умолчанию. Мы можем оставить большую часть этого файла как есть, но нам нужно настроить здесь виртуальный хост, чтобы он соответствовал нашему фактическому местоположению сайтов, а также несколько других вещей:

найти эти строки

DocumentRoot "c:/Apache2/htdocs"
ServerName www.example.com:443
ServerAdmin admin@example.com
ErrorLog "c:/Apache2/logs/error.log"
TransferLog "c:/Apache2/logs/access.log"

и измените их на

DocumentRoot "c:/wamp/www/wamphelpers"
ServerName wamphelpers.dev:443
ErrorLog "c:/wamp/logs/ssl_error.log"
TransferLog "c:/wamp/logs/ssl_access.log"

найти

SSLCertificateFile "c:/Apache2/conf/server.crt"

и изменить на

SSLCertificateFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.crt/server.crt"

найти

SSLCertificateKeyFile "c:/Apache2/conf/server.key"

и изменить на

SSLCertificateKeyFile "c:/wamp/bin/apache/apache2.2.26/conf/ssl.key/server.key"

найти

<Directory "c:/Apache2/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

и изменить на

<Directory "c:/wamp/www/wamphelpers">
    SSLOptions +StdEnvVars
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 localhost ::1
</Directory>

найти

SSLSessionCache        "shmcb:c:/Apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

и изменить его на

SSLSessionCache        "shmcb:c:/wamp/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

найти

CustomLog "c:/Apache24/logs/ssl_request.log" \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

и изменить на

CustomLog "c:/wamp/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

В основном, просматривайте файл conf и любую команду, которая не закомментирована, но содержит ссылку на файл или папку, ее следует изменить, чтобы она ссылалась на структуру папок WAMPServer, а не на «C:/Apache2 ....».'

Теперь убедитесь, что все эти файлы, которые мы изменили, сохранены, и перезапустите Apache, используя меню wampmanager.

Сначала проверьте, что незащищенный сайт все еще работает.

Затем попробуйте использовать ваш новый защищенный сайт, добавив «https://» в начале имени домена, то есть https://www.wamphelpers.dev без одинарных кавычек.

Если Apache не перезагружается , возможно, вы написали что-то не так. Протестируйте конфиги так:

Откройте командное окно

cd \wamp\bin\apache\apachex.y.z\bin
httpd -t

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

Исправьте это и попробуйте снова.

Первый доступ к вашему сайту создаст страницу с сообщением примерно так. При этом используется FireFox, другие будут немного отличаться, но концепция у него одинаковая.

Это потому, что ваш сертификат не подписан доверенным органом, DONT PANIC, это должно произойти.

Нажмите «Я понимаю риск», и появится кнопка «Добавить исключение». Нажмите кнопку «Добавить исключение», убедившись, что сведения о сайте сертификатов действительно принадлежат вам, и вы больше не увидите это сообщение, пока не очистите. список исключений.

БОЛЬШОЕ ПРИМЕЧАНИЕ Начиная с Apache v2.2.12 и OpenSSL v0.9.8j, теперь можно защитить более одного сайта на экземпляр Apache. Этот учебник не охватывает этот процесс. Смотрите здесь для более подробной информации:

Вот

и здесь

и здесь

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

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