Gentoo Linux에서 가상 호스트 생성, SSL 인증서 및 키 생성 및 CGI 게이트웨이 활성화
Gentoo Linux에 LAMP 설치에 대한 마지막 튜토리얼에서는 도메인을 더 잘 제어하기 위해 Apache에 사용할 수 있는 추가 설정 없이 기본 설치 프로세스만 다루었습니다.
이 튜토리얼은 Gentoo LAMP에 대한 이전 튜토리얼과 엄격하게 연결되어 있으며 Apache에서 가상 호스트 생성, 생성과 같은 LAMP 환경에 대한 추가 설정에 대해 논의합니다. >SSL 인증서 파일 및 키, HTTP 트랜잭션에서 보안 SSL 프로토콜을 활성화하고 Apache CGI 게이트웨이를 사용하여 Perl 또는 웹사이트에 Bash 스크립트를 설치하세요.
요구사항
- 젠투 리눅스에 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 기본 가상 호스트 파일을 열고 마지막 문 앞에 < 아래에 새 가상 호스트 정의를 입력하세요. … 지시어. 씨
ServerName 및 DocumentRoot 경로와 같은 사용자 정의 설정이 포함되어 있습니다. 다음 파일 템플릿을 새 가상 호스트에 대한 지침으로 사용하고 이를 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를 강력한 웹 호스팅 플랫폼으로 변환할 수 있습니다.