Opprette egensignerte SSL-sertifikater for Apache på Linux


Hvis Firesheep og andre trusler har du freaked ut om du bruker usikrede forbindelser, er det på tide å ta saken i egne hender. I underkant av 20 minutter, kan du opprette en selvsignert sertifikat for Apache å koble til ditt nettsted for å føre noen form for sensitiv informasjon. Det er enkelt og tar svært liten tid til å konfigurere.

Denne opplæringen forutsetter at du kommer til å gjøre et selvsignert sertifikat. Merk at du kan ganske mye følge med opplæringen for å få og installere et sertifikat via en Certificate Authority (CA), men utelater trinnene for å generere din egen selvsignert sertifikat. Generere forespørselen, arbeide med CA å få sertifikatet, og følg deretter installasjon og konfigurasjon trinn.

Selv signert vs. sertifiseringsinstanser

Hvorfor får jeg gi en guide for selv- signert konserter? Selvsignerte sertifikater bør egentlig bare brukes i noen situasjoner – men mange brukere passer profilen for å bruke et selvsignert sertifikat, men ikke klarer å lage en og arbeid over vanlig HTTP stedet.

Jeg bruker en selvsignert sertifikat fordi jeg ønsker å koble til serveren min sikkert når administrerende min blogg ved hjelp av WordPress. Hvis jeg er i en kaffe-butikk eller flyplassen, jeg virkelig ikke ønsker å sende mine legitimasjon over nettverket uten kryptering. Dårlig idé

Men jeg vil ikke bruke et selvsignert sertifikat for alle nettsteder som skal håndtere trafikk fra personer utenfor en organisasjon eller for en ". Virksomhetskritiske " type program. Det vil si, hvis du arbeider med en liten bedrift og har to eller tre veien krigere som må koble til Webmail og slikt over SSL, er trolig akseptabel et selvsignert sertifikat. Hvis du gjør støtte til en større organisasjon, eller hvis du kommer til å ha folk utenfor organisasjonen forbinder – våren for en betalt sertifikat.

Grunnen? Du bør ønsker å gi brukerne et cert som er signert av en tredjepart som er anerkjent av de store nettleserne. Dette slår ut CACert, dessverre, fordi deres rotsertifikat er ikke anbefale distribueres med de store nettleserne. Men hvis du ikke har et cert fra en betrodd tredjepart, vil brukerne få ekkel " dette er en ikke-klarert området " advarsel. Bortsett fra det faktum at det ser uprofesjonelt, er det også en reell risiko – i en stor organisasjon, antar du at alle brukere vil vite forskjellen mellom en legitim nøkkel generert av IT-avdelingen, og nøkler som genereres av en ondsinnet tredjepart? Nei det gjør du ikke. Så ikke plassere dette ansvaret på brukerne – kjøpe et cert.

Men det finnes tusenvis av nettsteder som trenger SSL, og ikke
trenger en betalt sertifikat. Og jeg er ikke fan av å bruke penger (og kaste bort tid) når det ikke er nødvendig. Så la oss komme i gang.

En Cert of My Own

Tro det eller ikke, vet jeg ikke generere konserter hver dag, så jeg måtte troll rundt for noen instruksjoner av min egen. Innlegget på Ubuntu forum, og Ubuntu Server Guide var nyttig og fikk meg det meste av veien der

Her er hva vi skal gjøre, i rekkefølge:.


    Sørg Apache har SSL aktivert.

    Generer en sertifikatsignering forespørsel (CSR).

    generere et selvsignert sertifikat.

    Kopier sertifikatet og nøklene vi har generert.

    Fortell Apache om sertifikatet.

    Endre VirtualHosts å bruke sertifikatet.

    Restart Apache og test.

    La oss starte med å sørge at SSL er aktivert ved å bruke a2enmod verktøyet for å aktivere SSL-modul:

    sudo a2enmod ssl

    generere CSR

    Nå er det tid for å generere CSR, og fylle ut spørsmålene du ville normalt ha verifisert av et Certificate Signing Authority:

    sudo openssl req -new > new.ssl.csr

    Når du gjør dette, vil du bli bedt om å oppgi et passord – du kommer til å ønske å huske passordet

    Nå, du kommer til å gå gjennom et sett av spørsmål.


     generere en 1024 bit RSA private nøkkelen ................ ++++++ ........................ ++++ ++ skrive nye private nøkkelen til 'privkey.pem'Enter PEM pass setning: Bekrefter - Skriv PEM passere setning: ----- Du er i ferd med å bli bedt om å oppgi informasjon som vil være incorporatedinto sertifikatet request.What du er i ferd å gå inn er det som kalles et unikt navn eller en DN.There er ganske mange felt, men du kan la noen blankFor noen felt vil det være en standardverdi, hvis du skriver ".", vil feltet være tomt .-- --- Country Name (2 bokstavkode) [AU]:  Tast inn kode 
    stat eller provins Name (fullt navn) [Noen-State]: Enter State Her
    Lokalitet Name (f.eks , city) []: Enter By Her
    Navn Organization (f.eks selskap) [Internett Widgits Pty Ltd]: Enter Firmanavn
    Organisasjonsenhet Name (f.eks seksjon) []: < em> Org Unit (hvis du har en)
    Common Name (f.eks navnet ditt) []: Først og etternavn
    E-post adresse []: Arbeid Email
    Vennligst oppgi Følgende "ekstra" attributesto sendes med sertifikat requestA utfordring passord []: La Blanke
    En valgfri firmanavn []: Valgfritt

    Parts i fet vekt
    krever innsats. Du ønsker å forlate utfordringen passord tomt, ellers må du angi dette hver gang du starter Apache.

    Generer sertifikatet

    Nå er det på tide å lage sertifikatet. Du kommer til å bruke OpenSSL igjen for å skape sertifikatet og deretter kopiere sertifikatet til /etc /ssl hvor Apache kan finne dem.


     sudo openssl rsa -i privkey.pem utsjekking new.cert.keysudo openssl x509 -in new.cert.csr utsjekking new.cert.cert -req -signkey new.cert.key -Days  NNN 
    sudo cp new.cert.cert /etc /ssl /certs/server.crtsudo cp new.cert.key /etc/ssl/private/server.key

    -Days alternativet angir hvor lang tid før sertifikatet utløper. Jeg gikk videre og (omtrent) beregnet tiden frem til utgivelsen av Ubuntu jeg bruker vil være ute av støtte. Du kan
    opphever et sertifikat eller erstatte en før sertifikatet utløper, selvfølgelig.

    Nå har du nøkkelen (server.nøkkel) og PEM-sertifikat (server.crt er en PEM-sertifikat ). Du må sørge for at nøkkelen ikke er lesbart for hele verden, men at sertifikatet er.

    Konfigurer Apache

    Nå som vi har fått sertifikatet på plass, må du redigere Apache konfigurasjonen for å legge SSL til nettstedet. Din konfigurasjon kan være forskjellig, avhengig av hvordan du har dine nettsteder satt opp og om du kun serverer ett område, eller om du serverer flere domener fra serveren.

    Her er hvordan jeg redigerte min konfigurasjon, som var ligger i /etc/apache2/sites-available/mydomain.net:


     Namevirtualhost *: 443NameVirtualHost *: 80 < virtuellverten *: 80 > Server  e-post adresse her 
    Server mydomain.net Server www.mydomain.net Document /srv/www/mydomain.net/public_html/feillogg /srv/www/mydomain.net/logs/error.log CustomLog /srv /www/mydomain.net/logs/access.log kombinert < /virtuellverten > < virtuellverten *: 443 > Serveradmin Denne e-postadressen er beskyttet mot programmer som samler. Du må aktivere Javascript for å kunne se Server mydomain.net Server www.mydomain.net Document /srv/www/mydomain.net/public_html/feillogg /srv/www/mydomain.net/logs/error.log CustomLog /srv /www /mydomain.net/logs/access.log~~V kombinert SSLEngine på SSLOptions + StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key</VirtualHost>

    Hvis du allerede bruker domenet, trenger du ikke å gjøre noe, men starte Apache. Hvis du setter Apache opp for første gang, eller er dette et nytt domene, så du vil kjøre dette:

    sudo a2ensite mydomain.net

    Hvis du kjører den, og området allerede er aktivert, så vil du bare få en feilmelding fra Apache sier det er allerede aktivert. Merk at alle som virkelig er satt opp en symlink under /etc /apache2 /sites-aktivert som linker til konfigurasjonen i /etc /apache2 /sites-available.

    Til slutt, og kontroller at serveradressen din er i /etc /hosts med IP-adressen du bruker for serveren.

    Det bør
    være det. Gå videre og koble til ditt nettsted ved hjelp av SSL (koble til https://mydomain.net istedenfor http://mydomain.net), og du må godkjenne sertifikatet første gang – med mindre du hoppet over den selv signering og sprang for en betalt sertifikat som er anerkjent av de store nettleserne. Hvis det er tilfelle, bør du ikke se en feil i det hele tatt – bare en indikasjon på at du har en sikker nettleser forbindelse.

    Merk at du også kan bruke SSL for sikring av annen trafikk. I kommende tutorials vil vi se på sikring IMAP, SMTP, og andre tilkoblinger, og flere tips og triks for å bruke SSH også. Anmeldelser