Hvernig á að tryggja Apache með SSL og við skulum dulkóða í FreeBSD


Í þessari kennslu munum við læra hvernig á að tryggja Apache HTTP netþjón með TLS/SSL vottorðum í boði hjá Let's Encrypt í FreeBSD 11.x. Við munum einnig fjalla um hvernig á að gera sjálfvirkan ferlið við endurnýjun skírteina fyrir Lets’ Encrypt.

TLS/SSL vottorð eru notuð af Apache vefþjóni til að dulkóða samskipti milli endahnúta, eða venjulegra milli netþjóns og viðskiptavinar til að veita öryggi. Let's Encrypt býður upp á certbot skipanalínuforrit, sem er forrit sem getur auðveldað hvernig þú getur fengið traust vottorð ókeypis.

  1. Uppsetning á FreeBSD 11.x
  2. 10 hlutir sem þarf að gera eftir uppsetningu FreeBSD
  3. Hvernig á að setja upp Apache, MariaDB og PHP í FreeBSD

Skref 1: Stilltu Apache SSL á FreeBSD

1. Áður en byrjað er að setja upp certbot tólið og búa til TSL stillingarskrána fyrir Apache skaltu fyrst búa til tvær aðskildar möppur sem heita sites-available og sites-enabled í Apache rótarstillingarskránni með því að gefa út skipanirnar hér að neðan.

Tilgangurinn með þessum tveimur möppum er að auðvelda stillingarstjórnun sýndarhýsingar í kerfinu, án þess að breyta aðal Apache httpd.conf stillingarskránni í hvert sinn sem við bætum við nýjum sýndarhýsli.

# mkdir /usr/local/etc/apache24/sites-available
# mkdir /usr/local/etc/apache24/sites-enabled

2. Eftir að þú hefur búið til báðar möppurnar skaltu opna Apache httpd.conf skrána með textaritli og bæta eftirfarandi línu við lok skráarinnar eins og sýnt er hér að neðan.

# nano /usr/local/etc/apache24/httpd.conf

Bættu við eftirfarandi línu:

IncludeOptional etc/apache24/sites-enabled/*.conf

3. Næst skaltu virkja TLS eininguna fyrir Apache með því að búa til eftirfarandi nýja skrá sem heitir 020_mod_ssl.conf í modules.d möppunni með eftirfarandi innihaldi.

# nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf

Bættu eftirfarandi línum við skrána 020_mod_ssl.conf.

Listen 443
SSLProtocol ALL -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog  builtin
SSLSessionCacheTimeout  300

4. Taktu nú úr athugasemdum við SSL eininguna úr /usr/local/etc/apache24/httpd.conf skránni með því að fjarlægja myllumerkið frá upphafi eftirfarandi línu eins og sýnt er hér að neðan:

LoadModule ssl_module libexec/apache24/mod_ssl.so

5. Næst skaltu búa til TLS stillingarskrána fyrir lénið þitt í möppu sem er tiltæk á síðum, helst með nafni lénsins þíns, eins og fram kemur í eftirfarandi útdrætti:

# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf

Bættu eftirfarandi sýndarhýsingarstillingum við skrána bsd.lan-ssl.conf.

<VirtualHost *:443>
    ServerName www.yourdomain.com
	ServerAlias yourdomain.com
                DocumentRoot "/usr/local/www/apache24/data/"
	SSLEngine on

	SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem"
	SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem"
	SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

<Directory "/usr/local/www/apache24/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

	BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0

	CustomLog "/var/log/apache/httpd-ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

	<Directory "/usr/local/www/apache24/data/">
            Options Indexes FollowSymLinks MultiViews
        #AllowOverride controls what directives may be placed in .htaccess files.       
                        AllowOverride All
        #Controls who can get stuff from this server file
                        Require all granted
        </Directory>
       
    ErrorLog "/var/log/apache/yourdomain.ssl-error.log"
    CustomLog "/var/log/apache/yourdomain.ssl-access_log" combined

</VirtualHost>

Gakktu úr skugga um að þú skiptir um lénsbreytu frá ServerName, ServerAlias, ErrorLog, CustomLog yfirlýsingum í samræmi við það.

Skref 2: Settu upp Lets'Encrypt á FreeBSD

6. Í næsta skrefi skaltu gefa út eftirfarandi skipun til að setja upp certbot tól sem Let's Encrypt býður upp á, sem verður notað til að fá Apache TSL ókeypis vottorð fyrir lénið þitt.

Á meðan þú setur upp certbot mun röð hvetja birtast á skjánum þínum. Notaðu skjámyndina hér að neðan til að stilla certbot tólið. Einnig gæti það tekið nokkurn tíma að setja saman og setja upp certbot tól, allt eftir auðlindum vélarinnar.

# cd /usr/ports/security/py-certbot
# make install clean

7. Eftir að samantektarferlinu er lokið, gefðu út skipunina hér að neðan til að uppfæra certbot tólið og certbot nauðsynlega ósjálfstæði.

# pkg install py27-certbot
# pkg install py27-acme

8. Til að búa til vottorð fyrir lénið þitt skaltu gefa út skipunina eins og sýnt er hér að neðan. Gakktu úr skugga um að þú gefur upp rétta vefrótarstaðsetningu þar sem vefsíðuskrárnar þínar eru geymdar í skráarkerfinu (DocumentRoot tilskipun frá stillingaskrá lénsins) með því að nota -w fánann. Ef þú ert með mörg undirlén skaltu bæta þeim öllum við með -d fánanum.

# certbot certonly --webroot -w /usr/local/www/apache24/data/ -d yourdomain.com -d www.yourdomain.com

Á meðan þú færð vottorðið, gefðu upp netfang fyrir endurnýjun vottorðs, ýttu á a til að samþykkja Let's Encrypt skilmála og skilyrði og n til að deila ekki netfanginu Let's Encrypt samstarfsaðilum.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):[email 
There seem to be problems with that address. Enter email address (used for
urgent renewal and security notices)  If you really want to skip this, you can
run the client with --register-unsafely-without-email but make sure you then
backup your account key from /etc/letsencrypt/accounts   (Enter 'c' to cancel):[email 

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: a ------------------------------------------------------------------------------- Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights. ------------------------------------------------------------------------------- (Y)es/(N)o: n Obtaining a new certificate Performing the following challenges: http-01 challenge for www.domain.com Using the webroot path /usr/local/www/apache24/data for all unmatched domains. Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Your cert will expire on 2017-11-15. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /usr/local/etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

9. Eftir að þú hefur fengið vottorðin fyrir lénið þitt geturðu keyrt ls skipunina til að skrá alla íhluti vottorðsins (keðja, einkalykill, vottorð) eins og sýnt er í dæminu hér að neðan.

# ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/

Skref 3: Uppfærðu Apache TLS vottorð á FreeBSD

10. Til að bæta Let's Encrypt vottorðum við vefsíðuna þína skaltu opna apache stillingarskrá fyrir lénið þitt og uppfæra eftirfarandi línur til að endurspegla slóð útgefinna skírteina.

# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf

Bættu þessum TLS vottorðslínum við:

SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem"
	SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem"
	SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"

11. Að lokum, virkjaðu TLS stillingarskrána, með því að búa til tákntengil fyrir TLS stillingaskrá lénsins þíns í möppu sem virkar á vefsvæði, athugaðu Apache stillingar fyrir hugsanlegar setningafræðivillur og, ef setningafræðin er í lagi, endurræstu Apache púkinn með því að gefa út skipanirnar hér að neðan.

# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/
# apachectl -t
# service apache24 restart

12. Til að athuga hvort Apache þjónustan er að hlusta á HTTPS tengi 443 skaltu gefa út eftirfarandi skipun til að skrá httpd nettengi.

# sockstat -4 | grep httpd

13. Þú getur farið að lénsfangi þínu úr vafra í gegnum HTTPS samskiptareglur til að staðfesta að Let's Encrypt vottorðum hafi verið beitt.

https://www.yourdomain.com

14. Til þess að fá auka upplýsingar um útgefið Let's Encrypt vottorð frá skipanalínunni, notaðu openssl skipunina sem hér segir.

# openssl s_client -connect www.yourdomain.com:443

15. Þú getur líka staðfest hvort umferðin sé dulkóðuð með gildu vottorði frá Let's Encrypt CA úr farsíma eins og sýnt er á farsímaskjámyndinni hér að neðan.

Það er allt og sumt! Viðskiptavinirnir geta nú heimsótt vefsíðuna þína á öruggan hátt, vegna þess að umferðin sem flæðir á milli netþjónsins og vafra viðskiptavinarins er dulkóðuð. Fyrir flóknari verkefni varðandi certbot gagnsemi skaltu fara á eftirfarandi hlekk: https://certbot.eff.org/