Ħolqien ta' Hosts Virtwali, Iġġenera Ċertifikati u Ċwievet SSL u Attiva CGI Gateway f'Gentoo Linux


L-aħħar tutorja dwar Installazzjoni ta' LAMP f'Gentoo Linux kopra biss il-proċess bażiku ta' installazzjoni mingħajr settings addizzjonali disponibbli għal Apache biex jikkontrolla aħjar id-dominji tiegħek.

Dan it-tutorja huwa strettament konness ma 'wieħed preċedenti fuq Gentoo LAMP u jiddiskuti settings żejda għall-ambjent LAMP bħal toħloq Virtual Hosts fuq Apache, tiġġenera SSL Ċertifikati fajls u Ċwievet, jippermettu protokoll sikur SSL fuq transazzjonijiet HTTP u uża Apache CGI Gateway sabiex tkun tista' tħaddem Perl jew Bash skripts fuq il-websajt tiegħek.

  1. Installa LAMP f'Gentoo Linux

Pass 1: Oħloq Hosts Virtwali Apache

Dan is-suġġett juża isem ta' dominju falz – gentoo.lan – attivat permezz ta' fajl hosts lokali, b'fajls tal-websajt servuti minn /var/www/gentoo.lanDocumentRoot direttiva, mingħajr rekord DNS validu, biex turi kif Hosts Virtwali multipli jistgħu jiġu attivati fuq Gentoo billi tuża Apache web Server.

1. Biex tibda, iftaħ il-fajl Gentoo hosts għall-editjar u żid linja ġdida bl-isem tad-dominju tiegħek.

$ sudo nano /etc/hosts

Fl-aħħar tal-fajl agħmel jidher simili għal dan.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. Ittestja d-dominju falz tiegħek bil-kmand ping u d-dominju għandu jirrispondi bl-indirizz IP tiegħu.

$ ping -c2 gentoo.lan

3. Il-proċess ta 'attivazzjoni ta' Apache Virtual Hosts huwa pjuttost sempliċi. Iftaħ biss il-fajl tal-hosts virtwali default ta' Apache li jinsab fit-triq /etc/apache2/vhosts.d/ u qabel l-aħħar dikjarazzjoni, daħħal id-definizzjoni l-ġdida tal-Ospiti Virtwali tiegħek magħluqa taħt direttivi. c

Li jkun fih is-settings tad-dwana tiegħek bħal ServerName u DocumentRoot mogħdija. Uża l-mudell tal-fajl li ġej bħala gwida għal Ospitanti Virtwali ġdid u inkludih fuq fajl 00_default_vhost.conf (għal websajts mhux SSL).

$ sudo nano /etc/apache2/vhosts.d/00_default_vhost.conf
## Another Virtual hosts statemes ending in </VirtualHost> ###

<VirtualHost *:80>
        ServerName gentoo.lan
        DocumentRoot "/var/www/gentoo.lan"
                        <Directory "/var/www/gentoo.lan"
                Options Indexes FollowSymLinks ExecCGI MultiViews
         # AllowOverride controls what directives may be placed in .htaccess files.       
                        AllowOverride All
        # Controls who can get stuff from this server file
                        Order allow,deny
                        Allow from all
        </Directory>
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
</VirtualHost>

## Another Virtual hosts statemes ###
## LAST STATEMENT which closes virtual hosts file ##

</IfDefine>

Kif tistgħu taraw billi viżwalizzaw dan il-kontenut tal-fajl, il-fajl huwa kkummentat ħafna bi spjegazzjonijiet u jżomm ukoll id-definizzjoni localhost Virtual Host - li tista 'tużah bħala gwida.

4. Wara li tispiċċa l-editjar tal-fajl bl-Ospitanti Virtwali tad-dwana tiegħek, ibda mill-ġdid Apache biex tapplika s-settings u kun żgur li toħloq direttorju DocumentRoot f'każ li bdilt din id-direttiva u t-triq ma teżistix b'mod awtomatiku ( f' dan il-każ inbidel għal /var/www/gentoo.lan). Ħloqt ukoll fajl PHP żgħir biex nittestja l-konfigurazzjonijiet tal-webserver.

$ sudo mkdir /var/www/gentoo.lan
$ su "echo '<?php phpinfo(); ?>' > /var/www/gentoo.lan/info.php"
$ sudo /etc/init.d/apache2 restart

5. Biex tivverifikaha, iftaħ browser u ppuntah l-isem tad-dominju virtwali tiegħek http://gentoo.lan/info.php.

Billi tuża din il-proċedura tista' żżid kemm trid websajts mhux SSL billi tuża Apache Virtual Hosts, iżda għal magna reali li tiffaċċja l-Internet assigura li għandek id-dominji tiegħek irreġistrati u tuża rekords validi tas-server DNS.

Biex tneħħi Ospitanti Virtwali biss ikkummenta jew ħassar id-direttivi tiegħu magħluqa taħt ... fuq il-fajl 00_default_vhost.conf.

Pass 2: Iġġenera Ċertifikati SSL u Ċwievet għal Hosts Virtwali

SSL huwa protokoll kriptografiku użat għall-iskambju ta' informazzjoni fuq kanal ta' komunikazzjoni sigur fl-Internet jew ġewwa netwerks bl-użu ta' Ċertifikati u Ċwievet simmetriċi/assimetriċi.

6. Biex tissimplifika l-proċess tal-ġenerazzjoni taċ-Ċertifikati u ċ-ċwievet uża l-iskrittura Bash li ġejja li taġixxi bħala kmand u awtomatikament toħloq dak kollu li għandek bżonn bis-settings tal-isem tad-dominju SSL tiegħek.

L-ewwel ibda billi toħloq skript Bash billi tuża l-kmand li ġej.

$ sudo nano /usr/local/bin/apache_gen_ssl

Żid il-kontenut tal-fajl li ġej.

#!/bin/bash
mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
echo -e "Enter a name for this certificate:\nEx: mydomain.lan"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The certificate $cert has been generated!\nPlease link it to Apache SSL website!"
ls -all /etc/apache2/ssl/
exit 0

7. Wara li l-fajl ikun inħoloq, waħħal il-permessi ta 'eżekuzzjoni fuqu u mexxih biex tiġġenera Ċwievet u Ċertifikati SSL.

$ sudo chmod +x /usr/local/bin/apache_gen_ssl
$ sudo apache_gen_ssl

Meta tmexxiha għall-ewwel darba, se titlobek biex iddaħħal l-isem tad-dominju tiegħek. Daħħal l-isem dominju tiegħek li għalih tiġġenera settings SSL u imla Ċertifikat bl-informazzjoni meħtieġa, l-aktar waħda importanti, Isem Komuni, uża l-FQDN tas-server tiegħek.

Post default fejn iċ-Ċertifikati u ċ-Ċwievet kollha tiegħek huma ospitati bl-użu ta' dan il-metodu huwa /etc/apache2/ssl/.

8. Issa wasal iż-żmien li toħloq gentoo.lan Virtual Host SSL ekwivalenti. Uża l-istess metodu bħal Hosts Virtwali mhux SSL iżda din id-darba editja l-fajl /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf bi ftit bidliet.

L-ewwel tiftaħ il-fajl għall-editjar u agħmel il-bidliet li ġejjin.

$ sudo nano /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf

Taħt id-direttiva Isma 443 żid il-kontenut li ġej.

NameVirtualHost *:443

Uża l-mudell li ġej għal Ospitanti Virtwali ġdid u ehmeż Ċertifikat SSL ġdid + mogħdija u ismijiet ewlenin.

## Another Virtual hosts statemes ending in </VirtualHost> ###

<VirtualHost *:443>
                ServerName gentoo.lan
    DocumentRoot "/var/www/gentoo.lan"
                ErrorLog /var/log/apache2/gentoo.lan-ssl_error_log
                <IfModule log_config_module>
                                TransferLog /var/log/apache2/gentoo.lan-ssl_access_log
                </IfModule>

                SSLEngine on
                SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

## Edit with new generated SSL certificate and key and change path to /etc/apache2/ssl/

		SSLCertificateFile /etc/apache2/ssl/gentoo.lan.crt
		SSLCertificateKeyFile /etc/apache2/ssl/gentoo.lan.key

                <Directory "/var/www/gentoo.lan">
                                Options Indexes FollowSymLinks ExecCGI MultiViews Includes
                                AllowOverride All
			        Order allow,deny
        			Allow from all
                </Directory>

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

                <Directory "/var/www/gentoo.lan ">
                                SSLOptions +StdEnvVars
                </Directory>

                <IfModule setenvif_module>
                                BrowserMatch ".*MSIE.*" \
                                                nokeepalive ssl-unclean-shutdown \
                                                downgrade-1.0 force-response-1.0
                </IfModule>

                <IfModule log_config_module>
                                CustomLog /var/log/apache2/ssl_request_log \
                                                "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
                </IfModule>
</VirtualHost>

## Another Virtual hosts statements ###

Id-definizzjonijiet tal-Ospiti Virtwali għandhom jispiċċaw qabel dawn l-aħħar tliet dikjarazzjonijiet.

</IfModule>
</IfDefine>
</IfDefine>

9. Wara li tispiċċa l-editjar tal-fajl tal-Ospitanti Virtwali, ibda mill-ġdid is-servizz Apache u mexxi l-browser tiegħek lejn id-dominju tiegħek billi tuża protokoll HTTPS https://gentoo.lan.

$ sudo /etc/init.d/apache2 restart

Billi tuża din il-proċedura, tista 'żżid websajts SSL biċ-Ċertifikati u ċ-Ċwievet tagħhom stess billi tuża Apache Virtual Hosts. Biex tneħħi l-Ospiti Virtwali SSL tikkummenta jew tħassar id-direttivi tagħha magħluqa taħt ... fuq il-fajl /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf.

Pass 3: Ippermetti l-Interface CGI

Is-CGI (Common Gateway Interface) jippermetti lil Apache jinteraġixxi ma' programmi esterni, li jikkonsistu primarjament fi skripts Perl jew BASH, li jistgħu jżidu kontenut dinamiku mal-websajt tiegħek.

10. Qabel ma ppermettiet il-portal CGI kun żgur li Apache ġie kkompilat bl-appoġġ tal-bnadar tal-moduli USE CGI fuq il-fajl Portage make.conf: cgi cgid. Biex tippermetti l-appoġġ tal-GCI għal Apache iftaħ il-fajl /etc/conf.d/apache2 u waħħal il-modulu CGI fuq il-linja APACHE2_OPTS.

$ sudo nano /etc/conf.d/apache2

Aċċerta li din il-linja għandha kontenut simili.

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D STATUS -D CGI"

11. Wara li l-moduli CGI huma attivati, iftaħ il-host tad-definizzjoni tal-websajt tiegħek li trid tattiva l-interface CGI u żid il-kontenut li ġej fid-direttivi Virtual Host.

<Directory "/var/www/gentoo.lan">
	Options Indexes +ExecCGI MultiViews
        AddHandler cgi-script .cgi .pl
	DirectoryIndex index.cgi index.php index.html index.pl
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>

12. Jekk għandek direttorju ġewwa l-mogħdija tad-DokumentRoot tiegħek (/var/www/gentoo.lan/) li żżomm skripts CGI tista' tippermetti biss dak id-direttorju biex iservi skripts Perl jew Bash dinamiċi.

ScriptAlias /cgi-bin/ /var/www/gentoo.lan/cgi-bin/

<Location /cgi-bin>
                Options +ExecCGI
AddHandler cgi-script .cgi .pl
 DirectoryIndex index.cgi index.php index.html index.pl
</Location>

13. Għal SSI (In-naħa tas-Server Jinkludi) ehmeż dikjarazzjoni +Jinkludi fuq Għażliet u żid l-estensjoni tal-fajl .shtml.

<Directory "/var/www/gentoo.lan">
                                Options Indexes +ExecCGI +Includes
                                AddHandler cgi-script .cgi .pl
                AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
        DirectoryIndex index.shtml index.cgi index.pl index.php index.html
                AllowOverride All
                Order allow,deny
                Allow from all
</Directory>

14. Biex tittestja xi skripts sempliċi .cgi u .pl fuq Apache CGI gateway oħloq l-iskripts li ġejjin ġewwa tiegħek Virtual Host DocumentRoot (/var/www/gentoo. lan/).

$ sudo nano /var/www/gentoo.lan/env.pl

Żid il-kontenut Perl li ġej.

#!/usr/bin/perl
print "Content-type: text/html\n\n"; foreach my $keys (sort keys %ENV) { print "$keys =
$ENV{$keys}<br/>\n";
}
$ sudo nano /var/www/gentoo.lan/run.cgi

Żid il-kontenut Bash li ġej.

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "---------------------------------------------------------------------------------"
              ./env.pl 
echo "---------------------------------------------------------------------------------"

15. Wara li l-fajls ikunu nħolqu, agħmelhom eżekutibbli, erġa ibda Apache daemon u ippunta l-browser tiegħek lejn l-URLs li ġejjin.

$ sudo chmod +x /var/www/gentoo.lan/run.cgi
$ sudo chmod +x /var/www/gentoo.lan/env.pl
$ sudo /etc/init.d/apache2 restart
https://gentoo.lan/run.cgi 

OR

https://gentoo.lan/env.pl

Issa tista 'tittrasforma Gentoo fi pjattaforma ta' web hosting b'saħħitha b'settings ta 'rfinar għall-prestazzjoni tas-sistema tiegħek u kontroll massimu fuq l-ambjent kollu tiegħek.