Wiem, że pytanie jest dość banalne. Mam w katalogu htdocs, katalog PIZZA_PIS wraz ze stronę w php. Chciałabym wygenerować klucz dla tej strony.Co powinnam wpisać tutaj jako xxx
? genrsa -des3 -out xxx.key 2048
.Czy powinno być: genrsa -des3 -out PIZZA_PIS.key 2048
? Czy tą nazwę PIZZA_PIS, muszę gdzieś jeszcze ustawiać w Apache? Odnoszę się do tej strony przez localhost\PIZZA_PIS.
Odnośnie Apache to oczywiście moduł SSL jest włączony i listen ustawiony na 443. Chodzi mi bardziej jak kurcze Apache ma wiedzieć o jaką stronę mi chodzi? Czy nie powinnam coś gdzieś ustawić w tym zakresie, albo w miejsce xxx
wpisać localhost\PIZZA_PIS
???
Klucz może nazywać się dowolnie, w apache2 musisz ustawić odpowiedniego virtualhosta (zwykle zmiana w /etc/apache2/sites-available
+ restart serwera apache2 (sudo service apache2 restart
)) dla ssl:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName website.pl:443
DocumentRoot /var/www/html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/apache2/ssl/website.pl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/website.pl/ssl.key
SSLCertificateChainFile /etc/apache2/ssl/website.pl/sub.class2.server.ca.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Zwróć uwagę na wszystkie website.pl
.
Dodatkowo, jeżeli chcesz wymusić https, musisz przekierować użytkowników z http:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName website.pl:80
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
DocumentRoot /var/www/html/website.pl
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Sama wygenerowałam Self-Signed Certificate czy w takim wypadku muszę i jeśli tak to jak, wypełnić SSLCertificateChainFile?
Niestety pracuję na Windows. Pliki crt i key są w katalogu SSL który utowrzyłam w katalogu z Apachem. Jak powinnam dodać ścieżkę ?
SSLCertificateFile C:/Program Files/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.crt SSLCertificateKeyFile C:/Program Files/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.key
SSLCertificateFile Apache Software Foundation/Apache2.2/SSL/samotny_klucz.crt SSLCertificateKeyFile /Apache Software Foundation/Apache2.2/SSL/samotny_klucz.key
Jeszcze inaczej? :P
SSLCertificateChainFile
nie jest konieczne. Może pomóc w przypadku starszych wersji Apache. Od wersji 2.4.8 wycofywane z użycia.
Co do kluczy, ścieżki powinny być ubrane w cudzysłów, zwłaszcza, że nazwy zawierają spacje.
SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.crt"
SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.key"
Z tego co się zorientowałam, na windowsie virtual host dla portu 443 czyli SSL powinien być w pliku httpd-ssl.conf
Ustawiłam tam ascetyczną wersję względem Twojej o to ona:
<VirtualHost _default_:443>
ServerAdmin [email protected]
DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/PIZZA_PIS"
ServerName localhost/PIZZA_PIS:443
ServerAlias localhost/PIZZA_PIS:443
ErrorLog "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/error.log"
TransferLog "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/access.log"
SSLEngine on
SSLCertificateFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.crt"
SSLCertificateKeyFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/SSL/samotny_klucz.key"
</VirtualHost>
//Nie dałam ifów bo jeśli to jest plik dla 443 to zakładam że w jakiś sposób się uruchamia gdy protokół jest włączony i jest na odpowiednim porcie strona.
localhost/PIZZ_PIS
jak wpisze mam stronę którą bym chciała zabezpieczyć. Jak wpisze : localhost/PIZZ_PIS:443
To mam Forbiden "You don't have permission to access /PIZZA_PIS:443 on this server."
Czy w httpd.conf
masz linijkę (nie jako komentarz) LoadModule ssl_module modules/mod_ssl.so
?
Czy mogłabyś dla porównania wkleić virtual host na PIZZA_PIS:80?
Czy pamiętałaś o a2ensite
? Czy nie zwraca błędów / ostrzeżeń?
Tak dopilnowałam, aby ładował się moduł. Mogę sprawdzić czy się ładuję, ale problem raczej nie jest po tej stronie.(Fizyczne sprawdzenie programem napisanym, bo jest oczywiście odkomentowane.
Nie spotkałam się aby w windowsie używać a2ensite, to jest raczej na linux, robiłam na linuxie virtualhosty i normalnie chodziły.
Nie istnieje virtualhost dla PIZZA_PIS, stąd chciałam się odwoływać adresem który wpisuję w przeglądarkę: localhost/PIZZA_PIS
Podjełam próbę utworzenia virtual hosta dla PIZZA_PIS o nazwie pizza-pis.pl.
Czy masz jednocześnie odpalonego IIS? Domyślnie nasłuchuje on na porcie 443 i odrzuca wszystkie połączenia. Czy w firewallu masz odblokowany ten port?
merlinnot napisał(a):
Czy masz jednocześnie odpalonego IIS?
Ta tragedia mnie jeszcze czeka...
Nie mam nawet zainstalowanego :P póki co.
Teraz wyłączyłam firewalla (w ogóle) i jak wpiszę localhost/PIZZA_PISS:443 To mam to samo co miałam Foerbidden
EDIT: Jak wpiszę https://localhost/PIZZA_PIS/ To mam taki komunikat :
Błąd połączenia SSL
Ukryj szczegóły
Nie można nawiązać bezpiecznego połączenia z serwerem. To może być problem z serwerem lub wymagany jest certyfikat uwierzytelniania klienta, którego nie masz.
Kod błędu: ERR_SSL_PROTOCOL_ERROR
Na chromie
A na operze:
Błąd połączenia SSL
Nie można nawiązać bezpiecznego połączenia z serwerem. Może to być problem z serwerem lub serwer wymaga klienckiego certyfikatu uwierzytelniającego, którego nie posiadasz.
Niestety jeszcze nie znalazłam jak to rozwiązać, odpowiedzi które znajduję są mało pomocne.
Ustawiłam htaccess w katalogu PIZZA_PIS aby wymuszać https...