Zrobiłem to z hasłem i z następującymi polami jako root
openssl req -x509 -days 365 -newkey rsa:2048 -keyout /etc/ssl/apache.key \
-out /etc/ssl/apache.crt
Pola
Country: FI
State: Pirkanmaa
Locality: Tampere
Organization: masi
Organizational Unit Name: SSL Certificate Test
CommonName: 192.168.1.107/owncloud
EmailAddress: [email protected]
Dane wyjściowe: błąd uzgadniania SSL w HTTPS. Oczekiwany wynik: połączenie HTTPS. HTTP działa.
CommonName powinien zawierać adres URL, do którego chcesz się udać, wątek owncloud tutaj . Próbowałem bez powodzenia pod wspólną nazwą
192.168.1.107/owncloud
192.168.1.107/
Testuj system operacyjny dla serwera: Debian 8.5.
Serwer: Raspberry Pi 3b. Owncloud-server: 8.2.5. Owncloud-client: 2.1.1. Klient-system: Debian 8.5.
openssl
certificates
Léo Léopold Hertz 준영
źródło
źródło
Centos 7 / Vagrant / Chrome Browser
.Odpowiedzi:
Tego polecenia nie można użyć do wygenerowania poprawnie sformułowanego certyfikatu X.509. Zostanie zniekształcony, ponieważ nazwa hosta znajduje się we wspólnej nazwie (CN) . Umieszczenie nazwy hosta lub adresu IP w CN jest nieaktualne zarówno przez IETF (większość narzędzi, takich jak
wget
icurl
) , jak i fora CA / B (CA i przeglądarki).Zgodnie zarówno z forami IETF, jak i CA / B nazwy serwerów i adresy IP zawsze znajdują się w alternatywnej nazwie podmiotu (SAN) . Aby zapoznać się z regułami, zobacz RFC 5280, Internetowy klucz infrastruktury certyfikatu X.509 i profil listy odwołania certyfikatów (CRL) oraz wymagania linii bazowej forum CA / przeglądarki .
Najczęściej potrzebujesz użyć pliku konfiguracyjnego OpenSSL i dostosować go do swoich potrzeb. Poniżej znajduje się przykład jednego, którego używam. Jest wywoływany
example-com.conf
i przekazywany do polecenia OpenSSL przez-config example-com.conf
.Również pamiętać, dobrze : wszystkie maszyny twierdzą, że są
localhost
,localhost.localdomain
itp Bądź ostrożny o wydawanie świadectw dlalocalhost
. Ja nie mówiąc nie rób tego; po prostu zrozum, że wiąże się to z pewnym ryzykiem.Alternatywami
localhost
są: (1) uruchomienie DNS i wydawanie certyfikatów na nazwę DNS urządzenia. Lub (2) użyj statycznego adresu IP i dołącz statyczny adres IP.Przeglądarki nadal ostrzegają o certyfikacie z podpisem własnym, który nie łączy się z zaufanym katalogiem głównym. Narzędzia takie jak
curl
iwget
nie będą narzekać, ale nadal musisz zaufać swojemu własnemu podpisowi z opcją taką jak cURL--cafile
. Aby rozwiązać problem z zaufaniem przeglądarki, musisz stać się własnym urzędem certyfikacji.„Stawanie się własnym urzędem certyfikacji” jest znane jako prowadzenie prywatnej infrastruktury PKI. Nie ma tego wiele. Możesz zrobić wszystko, co może zrobić publiczny urząd certyfikacji. Jedyną rzeczą jest inny trzeba będzie zainstalować swój głównego urzędu certyfikacji certyfikat w różnych sklepach. Nie różni się niczym od, powiedzmy, używania cURL
cacerts.pm
.cacerts.pm
to tylko kolekcja Root CA's, a teraz dołączyłeś do klubu.Jeśli zostaniesz własnym urzędem certyfikacji, pamiętaj o spaleniu klucza prywatnego głównego urzędu certyfikacji na dysku i pozostawieniu go w trybie offline. Następnie włóż go do napędu CD / DVD, aby podpisać prośbę o podpisanie. Teraz wydajesz certyfikaty tak jak publiczny urząd certyfikacji.
Nic nie jest strasznie trudne po podpisaniu jednego lub dwóch żądań podpisania. Od lat prowadzę prywatną PKI w domu. Wszystkie moje urządzenia i gadżety ufają mojemu urzędowi certyfikacji.
Aby uzyskać więcej informacji o tym, jak zostać własnym urzędem certyfikacji, zobacz Jak podpisać wniosek o podpisanie certyfikatu w urzędzie certyfikacji i Jak utworzyć samopodpisany certyfikat za pomocą openssl? .
Z komentarzy w pliku konfiguracyjnym poniżej ...
Samopodpisany (zwróć uwagę na dodanie -x509)
Żądanie podpisania (zauważ brak -x509)
Wydrukuj własny podpis
Wydrukuj prośbę o podpisanie
Plik konfiguracyjny
W przypadku Chrome może być konieczne wykonanie następujących czynności. W przeciwnym razie Chrome może narzekać, że nazwa pospolita jest nieprawidłowa (
ERR_CERT_COMMON_NAME_INVALID
) . W tym przypadku nie jestem pewien, jaki jest związek między adresem IP w sieci SAN a CN.źródło
sudo
. Być może twój.rnd
plik jest własnościąroot
. Jeśli tak, spróbujsudo chown -R masi:masi /home/masi
. Wtedy będziesz mógł z niego czytać i pisać.x509
(tak jak mówi komentarz).CommonName
Powinna odpowiadać co jest wysyłane jakoHost:
nagłówka żądania HTTP. W twoim przypadku byłoby to192.168.1.107
(bez końcowego ukośnika).Skonfiguruj nazwę hosta dla serwera WWW
Osobiście skonfigurowałbym przyjazną nazwę hosta dla serwera WWW. W swojej konfiguracji serwera Apache lub konfiguracji hosta wirtualnego (prawdopodobnie w
/etc/apache2/sites-enabled/000-default.conf
przypadku dystrybucji opartych na Debianie), użyj dyrektywyServerName
lubServerAlias
, np.Zrestartuj Apache, a następnie skonfiguruj DNS lub (prościej) dodaj wpis w każdym kliencie,
/etc/hosts
aby wskazał prawidłowy adres IP, np.źródło
192.168.1.107
. Drugi wątek mówi, że powinieneś dołączyć subdomenę. Myślę, że to implikuje192.168.1.107/owncloud
. Mogę się jednak mylić.ServerName owncloud.masi
w.../sites-enabled/000-default.conf
. Czy nazwa pospolita klucza SSL to owncloud.masi ?ServerAlias
?