웹사이트 검색

Gentoo Linux에서 가상 호스트 생성, SSL 인증서 및 키 생성 및 CGI 게이트웨이 활성화


Gentoo Linux에 LAMP 설치에 대한 마지막 튜토리얼에서는 도메인을 더 잘 제어하기 위해 Apache에 사용할 수 있는 추가 설정 없이 기본 설치 프로세스만 다루었습니다.

이 튜토리얼은 Gentoo LAMP에 대한 이전 튜토리얼과 엄격하게 연결되어 있으며 Apache에서 가상 호스트 생성, 생성과 같은 LAMP 환경에 대한 추가 설정에 대해 논의합니다. >SSL 인증서 파일 및 키, HTTP 트랜잭션에서 보안 SSL 프로토콜을 활성화하고 Apache CGI 게이트웨이를 사용하여 Perl 또는 웹사이트에 Bash 스크립트를 설치하세요.

요구사항

  1. 젠투 리눅스에 LAMP 설치

1단계: Apache 가상 호스트 생성

이 항목에서는 가짜 도메인 이름(gentoo.lan)을 사용합니다. – 로컬 호스트 파일을 통해 활성화되고 웹사이트 파일은 /var/www/gentoo.lan에서 제공됩니다. – DocumentRoot 지시문(유효한 DNS 레코드 없음)은 Apache 웹 서버를 사용하여 젠투에서 여러 가상 호스트를 활성화하는 방법을 보여줍니다.

1. 시작하려면 편집할 젠투 호스트 파일을 열고 도메인 이름이 포함된 새 줄을 추가하세요.

sudo nano /etc/hosts

파일 끝에서 다음과 비슷하게 만드십시오.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. ping 명령으로 가짜 도메인을 테스트하면 도메인이 해당 IP 주소로 응답해야 합니다.

ping -c2 gentoo.lan

3. Apache 가상 호스트를 활성화하는 과정은 매우 간단합니다. /etc/apache2/vhosts.d/ 경로에 있는 Apache 기본 가상 호스트 파일을 열고 마지막 문 앞에 < 아래에 새 가상 호스트 정의를 입력하세요. 지시어. 씨

ServerNameDocumentRoot 경로와 같은 사용자 정의 설정이 포함되어 있습니다. 다음 파일 템플릿을 새 가상 호스트에 대한 지침으로 사용하고 이를 00_default_vhost.conf 파일에 포함하세요(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>

이 파일 내용을 시각화하여 볼 수 있듯이 파일에는 설명과 함께 주석이 많이 달려 있으며 가이드로 사용할 수 있는 localhost 가상 호스트 정의도 유지됩니다.

4. 사용자 정의 가상 호스트로 파일 편집을 마친 후 Apache를 다시 시작하여 설정을 적용하고 이 지시어를 변경했지만 경로가 변경되지 않은 경우 DocumentRoot 디렉터리를 생성했는지 확인하세요. 기본적으로 존재하지 않습니다(이 경우 /var/www/gentoo.lan으로 변경됨). 또한 웹 서버 구성을 테스트하기 위해 작은 PHP 파일을 만들었습니다.

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

5. 이를 확인하려면 브라우저를 열고 가상 도메인 이름 http://gentoo.lan/info.php을 지정하세요.

이 절차를 사용하면 Apache 가상 호스트를 사용하여 SSL이 아닌 웹 사이트를 원하는 만큼 추가할 수 있지만 실제 인터넷 연결 시스템의 경우 도메인이 등록되어 있고 유효한 DNS 서버 레코드를 사용해야 합니다.

가상 호스트를 제거하려면 00_default_vhost.conf 파일의 아래에 있는 해당 지시문을 주석 처리하거나 삭제하세요.

2단계: 가상 호스트용 SSL 인증서 및 키 생성

SSL은 인증서와 대칭/비대칭 키를 사용하여 인터넷이나 내부 네트워크의 보안 통신 채널을 통해 정보를 교환하는 데 사용되는 암호화 프로토콜입니다.

6. 인증서 및 키 생성 프로세스를 단순화하려면 명령 역할을 하고 SSL 도메인 이름 설정에 필요한 모든 것을 자동으로 생성하는 다음 Bash 스크립트를 사용하십시오.

먼저 다음 명령을 사용하여 Bash 스크립트를 생성하여 시작하십시오.

sudo nano /usr/local/bin/apache_gen_ssl

다음 파일 내용을 추가합니다.

#!/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. 파일이 생성된 후 파일에 실행 권한을 추가하고 실행하여 SSL 키와 인증서를 생성합니다.

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

처음 실행하면 도메인 이름을 입력하라는 메시지가 표시됩니다. SSL 설정을 생성하는 도메인 이름을 입력하고 인증서에 필수 정보를 입력하세요. 가장 중요한 정보인 일반 이름은 서버 FQDN을 사용하세요.

이 방법을 사용하여 모든 인증서와 키가 호스팅되는 기본 위치는 /etc/apache2/ssl/입니다.

8. 이제 gentoo.lan 가상 호스트 SSL을 생성할 시간입니다. SSL이 아닌 가상 호스트와 동일한 방법을 사용하지만 이번에는 /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf 파일을 약간 변경하여 편집합니다.

먼저 편집할 파일을 열고 다음과 같이 변경합니다.

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

Listen 443 지시문 아래에 다음 콘텐츠를 추가합니다.

NameVirtualHost *:443

새 가상 호스트에 대해 다음 템플릿을 사용하고 새 SSL 인증서 + 키 경로 및 이름을 추가합니다.

## 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 ###

가상 호스트 정의는 이 마지막 세 문 이전에 끝나야 합니다.

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

9. 가상 호스트 파일 편집을 마친 후 Apache 서비스를 다시 시작하고 HTTPS 프로토콜 https://gentoo.lan을 사용하여 브라우저를 도메인으로 연결하세요.

sudo /etc/init.d/apache2 restart

이 절차를 사용하면 Apache 가상 호스트를 사용하여 자체 인증서 및 키가 있는 SSL 웹 사이트를 추가할 수 있습니다. SSL 가상 호스트를 제거하려면 /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf 파일의 아래에 포함된 해당 지시어를 주석 처리하거나 삭제하세요.

3단계: CGI 인터페이스 활성화

CGI(공통 게이트웨이 인터페이스)를 사용하면 Apache가 웹사이트에 동적 콘텐츠를 추가할 수 있는 Perl 또는 BASH 스크립트로 구성된 외부 프로그램과 상호 작용할 수 있습니다.

10. CGI 게이트웨이를 활성화하기 전에 Apache가 Portage make.conf 파일의 USE CGI 모듈 플래그 지원으로 컴파일되었는지 확인하세요: cgi cgid . Apache에 대한 GCI 지원을 활성화하려면 /etc/conf.d/apache2 파일을 열고 APACHE2_OPTS 줄에 CGI 모듈을 추가하세요.

sudo nano /etc/conf.d/apache2

이 줄에 비슷한 내용이 있는지 확인하세요.

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

11. CGI 모듈이 활성화된 후 CGI 인터페이스를 활성화하려는 웹사이트 정의 호스트를 열고 가상 호스트 지시어 내에 다음 콘텐츠를 추가합니다.

<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. CGI 스크립트를 포함하는 DocumentRoot(/var/www/gentoo.lan/) 경로 내에 디렉토리가 있는 경우 해당 디렉토리만 활성화하여 동적 Perl을 제공할 수 있습니다. 또는 Bash 스크립트.

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. SSI(서버 측 포함)의 경우 옵션+Includes 문을 추가하고 .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. Apache CGI 게이트웨이에서 몇 가지 간단한 .cgi.pl 스크립트를 테스트하려면 가상 호스트 DocumentRoot( /var/www/gentoo.lan/).

펄 스크립트
sudo nano /var/www/gentoo.lan/env.pl

다음 Perl 콘텐츠를 추가합니다.

#!/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

다음 Bash 콘텐츠를 추가합니다.

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

15. 파일이 생성되면 파일을 실행 가능하게 만들고 Apache 데몬을 다시 시작한 다음 브라우저에서 다음 URL을 가리키도록 하십시오.

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

이제 시스템 성능을 위한 미세 조정 설정과 전체 환경에 대한 최대 제어 기능을 통해 Gentoo를 강력한 웹 호스팅 플랫폼으로 변환할 수 있습니다.