Jak łatwo utworzyć certyfikat SSL i skonfigurować go w Apache2 w Mac OS X?

34

Chciałbym używać mojego Mac OS X z https do testów rozwoju lokalnego. Jak mogę łatwo zmusić Apache2 do odpowiedzi na ssl, tylko na potrzeby propozycji testowych - nie chcę prawdziwego certyfikatu, tylko fałszywy, aby lokalna https działała

Daniel Cukier
źródło

Odpowiedzi:

58

Do testowania rozwoju lokalnego wystarczający jest samopodpisany certyfikat. Możesz go wygenerować za pomocą zestawu OpenSSL, takiego jak:

Generowanie klucza prywatnego:

openssl genrsa -des3 -out server.key 1024

wydajność:

Generowanie klucza prywatnego RSA, moduł długości 1024 bitów
.................................................. ....... ++++++
........ ++++++
e wynosi 65537 (0x10001)
Wpisz frazę PEM:
Weryfikowanie hasła - wprowadź frazę PEM:

wprowadź hasło dla swojego klucza prywatnego.

Generowanie CSR (żądanie podpisania certyfikatu):

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

poprosi o takie szczegóły:

Nazwa kraju (dwuliterowy kod) [GB]:
Nazwa stanu lub prowincji (pełna nazwa) [Berkshire]:
Nazwa miejscowości (np. Miasto) [Newbury]:
Nazwa organizacji (np. Firma) [My Company Ltd]:
Nazwa jednostki organizacyjnej (np. Sekcja) []:
Nazwa zwyczajowa (np. Twoje imię lub nazwa hosta twojego serwera) []:
Adres e-mail []:
Wprowadź następujące atrybuty „dodatkowe”
do wysłania z prośbą o certyfikat
Hasło wyzwania []:
Opcjonalna nazwa firmy []:

to dość proste, nazwa pospolita to nazwa hosta twojego serwera, jak podano w nawiasach.

Generowanie samopodpisanego certyfikatu:

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

Konfigurowanie protokołu SSL w httpd.conf dla Apache:

SSLEngine włączony
SSLCertificateFile /path/to/generated/server.crt
SSLCertificateKeyFile /path/to/generated/server.key

(odpowiednio zamień ścieżkę na ścieżkę do certyfikatu i klucza)

Uruchom ponownie Apache :

apachectl restart

Apache poprosi cię o hasło do twojego klucza. Jeśli uważasz, że będziesz często zamykać serwer, możesz usunąć hasło z klucza, aby uniknąć wprowadzania go za każdym razem. Jeśli nie, nie przejmuj się tym. Jeśli tak, wykonaj ten krok po kroku 2 ( Generowanie CSR ):

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key
John T.
źródło
prawie mnie to obchodzi. Kiedy próbuję uzyskać dostęp do jakiejś strony w moich Railsach, używając http strona istnieje, ale gdy używam https, zwraca stronę nie znalezioną. Czy wiesz co może być?
Daniel Cukier
Czy zmieniłeś wirtualnego hosta na https na porcie 443? Powinno to wyglądać tak: <VirtualHost 192.168.1.100:443> SSLEngine On, etc .... </VirtualHost>
John T
Dzięki za to mam certyfikat SSL, który działa poprawnie na Lionie. Pomyślałem, że dodam kilka punktów, które powinny ułatwić ci życie. Apache Apple ma httpd-ssl.conf, który jest już skonfigurowany do przeglądania w / private / etc / apache2, więc jeśli umieścisz serwer. * Pliki tam jest o jeden plik mniej do edycji. Ponadto należy edytować plik httpd.conf, ponieważ wiersz zawierający httpd-ssl.conf jest domyślnie skomentowany. Wreszcie 365 dni jest trochę krótkich, możesz chcieć ustawić dłuższą datę wygaśnięcia, albo zrobisz to ponownie w przyszłym roku (użyłem 3650)
GordonM
Jeśli ktoś miał takie problemy jak ja, z przyjemnością znajdziesz ten link, który wyjaśnia, jak poprawnie skonfigurować virtualhost z virtualhostx do pracy z ssl yellowrobot.heroku.com/blog/2012/01/22/...
Relequestual
Jeśli jest to twoja maszyna
deweloperska