Hur genererar och installerar jag självsignerat certifikat på Apache?

Secure Socket Layer (SSL) används för att kryptera dataströmmen mellan webbservern och webbklienten (webbläsaren).

SSL använder sig av vad som kallas asymmetrisk kryptografi, vanligen kallad public key cryptography (PKI). Med publik nyckelkryptering skapas två nycklar, en offentlig och en privat. Allt som är krypterat med endera nyckeln kan bara dekrypteras med dess motsvarande nyckel. Om ett meddelande eller en dataström krypterades med serverns privata nyckel, kan den alltså dekrypteras endast med hjälp av dess motsvarande offentliga nyckel, vilket säkerställer att data endast kunde ha kommit från servern.

Apache ssl-certifikatet undertecknat av en betrodd certifikatutfärdare (CA), säkerställer att certifikatinnehavaren är en verklig person eller organisation. Utan ett pålitligt signerat certifikat kan dina data krypteras, men den part du kommunicerar med kanske inte är den du tror. Utan apache ssl-certifikat skulle identitetsattacker vara mycket vanligare.

openssl-verktygssatsen används för att generera en privat RSA-nyckel och CSR (Certificate Signing Request). Det kan också användas för att generera självsignerade certifikat som kan användas för teständamål eller internt bruk.

Steg 1: Skapa en privat nyckel

Det första steget är att skapa din privata RSA-nyckel. Denna nyckel är en 1024 bitars RSA-nyckel som är krypterad med Triple-DES och lagras i ett PEM-format så att den är läsbar som ASCII-text.

openssl genrsa -des3 -out server.key 1024 Genererar privat RSA-nyckel, 1024 bitars lång modul .........................................................++++++ ........++++++ e är 65537 (0x10001) Ange PEM-lösenfras: Verifierar lösenord - Ange PEM-lösenordsfras:

Steg 2: Skapa en CSR (Certificate Signing Request)

När den privata nyckeln har genererats kan en begäran om certifikatsignering genereras. CSR används sedan på ett av två sätt. Helst kommer CSR:en att skickas till en certifikatutfärdare, såsom Verisign, som kommer att verifiera identiteten på begäranden och utfärda ett signerat certifikat. Det andra alternativet är att självsignera CSR, vilket kommer att visas i nästa avsnitt.

Under genereringen av CSR kommer du att bli tillfrågad om flera delar av information. Dessa är certifikatets X.509-attribut. En av uppmaningarna kommer att vara för "Allmänt namn (t.ex. DITT namn)". Det är viktigt att detta fält fylls i med det fullt kvalificerade domännamnet för servern som ska skyddas av SSL. Om webbplatsen som ska skyddas är https://yourdomain.com, ange sedan "dindomän.com" vid denna prompt. Kommandot för att generera CSR är följande:

openssl req -new -key server.key -out server.csr Landsnamn (kod på två bokstäver) [GB]:IN Stats- eller provinsnamn (fullständigt namn) [Berkshire]:Karnataka Ortsnamn (t.ex. stad) [Newbury]:Bangalore Organisationsnamn (t.ex. företag) [My Company Ltd]:Företagsnamn Organisationsenhetens namn (t.ex. avsnitt) []:Informationsteknik Vanligt namn (t.ex. ditt namn eller din servers värdnamn) []:dindomän.com E-postadress []:admin@dindomän.com Vänligen ange följande "extra" attribut skickas med din certifikatbegäran Ett utmaningslösenord []: Ett valfritt företagsnamn []:

Steg 3: Ta bort lösenordsfrasen från nyckeln

En olycklig bieffekt av den lösenfraserade privata nyckeln är att webbservern kommer att fråga efter lösenfrasen varje gång webbservern startas. Uppenbarligen är detta inte nödvändigtvis bekvämt eftersom någon inte alltid kommer att vara i närheten för att skriva in lösenfrasen, till exempel efter en omstart eller krasch. mod_ssl inkluderar möjligheten att använda ett externt program istället för den inbyggda dialogrutan för lösenordsfraser, men detta är inte nödvändigtvis det säkraste alternativet heller. Det är möjligt att ta bort Triple-DES-krypteringen från nyckeln och därmed inte längre behöva skriva in en lösenordsfras. Om den privata nyckeln inte längre är krypterad är det viktigt att denna fil endast kan läsas av rotanvändaren! Om ditt system någon gång äventyras och en tredje part får din okrypterade privata nyckel, måste motsvarande certifikat återkallas. Med det sagt, använd följande kommando för att ta bort lösenfrasen från nyckeln:

cp server.key server.key.org openssl rsa -in server.key.org -out server.key

Den nyskapade server.key-filen har ingen längre lösenordsfras.

Steg 4: Skapa ett självsignerat certifikat

Vid det här laget måste du generera ett självsignerat certifikat eftersom du antingen inte planerar att få ditt certifikat signerat av en CA, eller så vill du testa din nya SSL-implementering medan CA signerar ditt certifikat. Detta tillfälliga certifikat kommer att generera ett fel i klientens webbläsare som innebär att den signerande certifikatutfärdaren är okänd och inte pålitlig.

För att generera ett tillfälligt certifikat som är bra i 365 dagar, utfärda följande kommando:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Signatur ok ämne=/C=CH/ST=Bern/L=Oberdiessbach/O=Akadia AG/OU=Information Technology/CN=public.akadia.com/Email=martin dot zahn at akadia dot ch Få privat nyckel

Steg 5: Installera den privata nyckeln och certifikatet

När Apache med mod_ssl är installerat skapar den flera kataloger i Apaches konfigurationskatalog. Platsen för denna katalog kommer att variera beroende på hur Apache kompilerades.

cp server.crt /usr/local/apache/conf/ssl.crt cp server.key /usr/local/apache/conf/ssl.key

Steg 6: Konfigurera SSL-aktiverade virtuella värdar

SSLengine på SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

Starta nu om Apache och kontrollera.

Kontakta oss.

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish