make then make install
az SSL elsődleges funkciója az interneten a Titkosítás és a bizalom megkönnyítése, amely lehetővé teszi a webböngésző számára a webhely hitelességének ellenőrzését. Az SSL azonban fordítva is működik-az ügyfél SSL tanúsítványai felhasználhatók az ügyfél hitelesítésére a webkiszolgálóra. Gondoljon az SSH nyilvános / privát kulcspárokra, ha ez ismerős Önnek. Ebben a blogbejegyzésben felvázolom a certificate authority tanúsítvány létrehozásának lépéseit, aláírja a szerver tanúsítványt, és telepíti azt az Apache-ba, és létrehoz egy kliens cert-t a webböngészők által használt formátumban.
az operációs rendszer és az Apache telepítése kívül esik a blogbejegyzés hatókörén, és feltételezem, hogy van egy működő Apache telepítése, mielőtt elkezdenénk. Ubuntu 12.04.4 rendszert használok ebben a blogbejegyzésben.
hitelesítésszolgáltató (CA) tanúsítvány létrehozása
az első lépés egy hitelesítésszolgáltató tanúsítvány létrehozása. Ezt a CA tanúsítványt nem kell generálni a webszerveren – bármilyen gépen ülhet, amelyet SSL tanúsítványok előállításához használ. A létrehozás után a CA cert megbízható hatóságként fog működni mind a szerver, mind az ügyfél tanúsítványok számára. Ez egyenértékű a Verisign vagy Comodos a valós világban az SSL, azonban nem szeretné használni a CA cert egy nagy nyilvános honlapján, mint a bizalom nem fog beépülni böngészők mindenhol.
a CA tanúsítvány generálása ezzel a paranccsal:
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
akkor tartsa titokban – tartsa őket biztonságban. Ha valaki megszerezné ezeket a fájlokat, képes lenne olyan szerver-és kliens tanúsítványokat generálni, amelyekben a webszerverünk megbízik, mivel az alább lesz konfigurálva.
generálja az Apache server SSL kulcsát és tanúsítványát
most, hogy megvan a CA cert, létrehozhatjuk az Apache által használt SSL tanúsítványt.
- szerver privát kulcs létrehozása.
openssl genrsa -out server.key 4096
- használja a kiszolgáló privát kulcsát tanúsítványgenerálási kérelem létrehozásához.
openssl req -new -key server.key -out server.req -sha256
- használja a tanúsítványgenerálási kérelmet és a CA cert-t a kiszolgáló cert létrehozásához.
openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server.cer -sha256
- Tisztítás – most, hogy a cert létrejött, már nincs szükségünk a kérésre.
rm server.req
telepítse a kiszolgálói tanúsítványt Apache
a kiszolgálóm Ubuntu 12.04.4-et futtat, így az itt hivatkozott összes útvonal és parancs az adott operációs rendszerre vonatkozik.
- másolja a CA cert-et állandó helyre. Meg kell adnunk a CA cert-t az Apache-ban, mivel ez egy saját generált CA, és nem olyan, amely mindenhol megtalálható az operációs rendszerekben.
cp ca.cer /etc/ssl/certs/
- másolja a szerver cert-jét és a privát kulcsot állandó helyre.
cp server.cer /etc/ssl/certs/server.crtcp server.key /etc/ssl/private/server.key
- aktiválja az SSL modult az Apache-ban.
a2enmod ssl
- aktiválja az SSL webhelyet az Apache-ban és tiltsa le a HTTP webhelyet.
a2ensite default-ssla2dissite default
- Edit /etc/apache2/sites-enabled/000-default-ssl (Az SSL-enabled webhely konfigurációs fájlja) és add hozzá:
SSLCACertificateFile /etc/ssl/certs/ca.cerSSLCertificateFile /etc/ssl/certs/server.crtSSLCertificateKeyFile /etc/ssl/private/server.key
- alkalmazza a konfigurációt az Apache-ban.
service apache2 restart
most, ha ellátogat a https webhelyére, SSL hibát kap, amely hasonló: “az SSL peer nem tudott tárgyalni elfogadható biztonsági paraméterekről.”Ez jó – ez azt jelenti, hogy webhelye csak akkor fogad el kapcsolatot, ha böngészője megbízható ügyfél-tanúsítványt használ. Most létrehozunk egyet.
ügyfél SSL tanúsítvány létrehozása
- privát kulcs létrehozása az SSL ügyfél számára.
openssl genrsa -out client.key 4096
- használja az ügyfél privát kulcsát egy cert kérés létrehozásához.
openssl req -new -key client.key -out client.req
- adja ki az ügyféltanúsítványt a CERT kéréssel és a CA cert/kulccsal.
openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.cer
- konvertálja az ügyféltanúsítványt és a privát kulcsot PKCS#12 formátumba a böngészők számára.
openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
- Tisztítás – távolítsa el az ügyfél privát kulcsát, az ügyfél cert és az ügyfél kérési fájljait, mivel a pkcs12 mindent tartalmaz.
rm client.key client.cer client.req
úgy néz ki, mint egy nagyon hasonló folyamat generáló szerver tanúsítvány, huh?
végül importálja a .p12 fájlt a böngészőbe. Windows rendszeren duplán kattintva importálhatja a fájlt az operációs rendszer kulcstárába, amelyet az IE és a Chrome használ. Firefox esetén nyissa meg a -> speciális -> Tanúsítványok -> Tanúsítványok megtekintése -> a tanúsítványokat, és importálja a tanúsítványt.
most keresse fel webhelyét azzal a böngészővel, ahová az ügyféltanúsítványt importálta. Valószínűleg a rendszer kéri, hogy melyik ügyféltanúsítványt használja – válassza ki. Akkor lesz hiteles, illetve engedélyezett!