Apache2 환경설정 생성기

Apache 2 환경설정 파일을 생성할 수 있습니다.
Ubuntu 22.04 APM , Ubuntu 20.04 APM , Ubuntu 18.04 APM , Ubuntu 16.04 APM 글에서 사용하는 도구입니다.

사이트 설정
 리눅스 사용자 아이디(*)
 주 도메인(*)
 추가 연결 도메인
 추가 연결 도메인
 웹 루트 디렉토리

외부에서 접속이 가능한지 확인해보세요. 웹서비스를 위해서 TCP 80 (HTTP), TCP 443 (HTTPS)이 접속허용 되어있어야 합니다.
HTTP 포트가 열려있는지 테스트 , HTTPS 포트가 열려있는지 테스트

HTTP 만 사용하는 사이트



<VirtualHost *:80>
    ServerName examplesite.com
    ServerAlias www.examplesite.com
    
    DocumentRoot /home/myuser1/www

    <Directory /home/myuser1/www>
        Options FollowSymLinks MultiViews
        AllowOverride All
        require all granted

        php_value upload_max_filesize 10M
        php_value post_max_size 10M

        php_value session.cookie_httponly 1
        php_value session.use_strict_mode 1

        php_value memory_limit 128M
        php_value max_execution_time 30
        php_value max_input_time 60
    </Directory>

    AssignUserID myuser1 myuser1

    ErrorLog ${APACHE_LOG_DIR}/examplesite.com-error.log
    CustomLog ${APACHE_LOG_DIR}/examplesite.com-access.log combined

</VirtualHost>

HTTPS (임시 인증서로 구동)

<VirtualHost *:80>
    ServerName examplesite.com
    ServerAlias www.examplesite.com
    
    <IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteRule ^ - [E=protossl]
    RewriteCond %{HTTPS} on
    RewriteRule ^ - [E=protossl:s]

    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    </IfModule>

</VirtualHost>

# Specify the SSL cache directory. If possible, use shmcb, otherwise use the provided path.
SSLStaplingCache shmcb:/var/run/ocsp(128000)

<VirtualHost *:443>
    ServerName examplesite.com
    ServerAlias www.examplesite.com
    
    DocumentRoot /home/myuser1/www

    <Directory /home/myuser1/www>
        Options FollowSymLinks MultiViews
        AllowOverride All
        require all granted

        php_value upload_max_filesize 10M
        php_value post_max_size 10M

        php_value session.cookie_httponly 1
        php_value session.use_strict_mode 1

        # php_value memory_limit 128M
        # php_value max_execution_time 30
        # php_value max_input_time 60
    </Directory>

    AssignUserID myuser1 myuser1

    ErrorLog ${APACHE_LOG_DIR}/examplesite.com-error.log
    CustomLog ${APACHE_LOG_DIR}/examplesite.com-access.log combined

    SSLEngine on

    SSLProtocol all -SSLv2 -SSLv3

    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

    SSLHonorCipherOrder on
    SSLCertificateFile  /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

    # Turn on OCSP stapling
    SSLUseStapling on
    SSLStaplingResponderTimeout 5
    SSLStaplingReturnResponderErrors off

</VirtualHost>

HTTPS (LetsEncrypt 무료 인증서 사용)

<VirtualHost *:80>
    ServerName examplesite.com
    ServerAlias www.examplesite.com
    
    <IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteRule ^ - [E=protossl]
    RewriteCond %{HTTPS} on
    RewriteRule ^ - [E=protossl:s]

    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    </IfModule>

</VirtualHost>

# Specify the SSL cache directory. If possible, use shmcb, otherwise use the provided path.
SSLStaplingCache shmcb:/var/run/ocsp(128000)

<VirtualHost *:443>
    ServerName examplesite.com
    ServerAlias www.examplesite.com
    
    DocumentRoot /home/myuser1/www

    <Directory /home/myuser1/www>
        Options FollowSymLinks MultiViews
        AllowOverride All
        require all granted

        # upload_max_filesize and post_max_size must have the same value.
        php_value upload_max_filesize 10M
        php_value post_max_size 10M

        # Enhance session security.
        php_value session.cookie_httponly 1
        php_value session.use_strict_mode 1

        # php_value memory_limit 128M
        # php_value max_execution_time 30
        # php_value max_input_time 60
    </Directory>

    AssignUserID myuser1 myuser1

    ErrorLog ${APACHE_LOG_DIR}/examplesite.com-error.log
    CustomLog ${APACHE_LOG_DIR}/examplesite.com-access.log combined

    Header always set Strict-Transport-Security "max-age=31536000"

    SSLEngine on

    SSLProtocol all -SSLv2 -SSLv3

    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

    SSLHonorCipherOrder on
    SSLCertificateFile "/etc/letsencrypt/live/examplesite.com/cert.pem"
    SSLCertificateKeyFile "/etc/letsencrypt/live/examplesite.com/privkey.pem"
    SSLCertificateChainFile "/etc/letsencrypt/live/examplesite.com/chain.pem"

    # Turn on OCSP stapling
    SSLUseStapling on
    SSLStaplingResponderTimeout 5
    SSLStaplingReturnResponderErrors off

</VirtualHost>

임시 인증서 준비 하는법

서버의 root 사용자로 로그인 후 임시 인증서 패키지를 설치합니다.

LetsEncrypt 인증서 발급하는법

1) 발급 프로그램 설치
2) HTTP 사이트 or HTTPS(임시인증서) 사이트 구동
당신이 examplesite.com 도메인의 보안 인증서를 발급받을 권한이 있는지 확인합니다.
인증서 발급 프로그램(certbot)인증서버(letsencrypt)가 통신하여 도메인 소유를 확인합니다.

인증서 발급 프로그램은 /home/myuser1/www/.well-known/acme-challenge/ 위치에 랜덤의 파일을 생성하고,
인증 서버는 http://examplesite.com/.well-known/acme-challenge/ 에 접속하여 파일을 확인합니다.

따라서 HTTP 사이트 or HTTPS(임시인증서) 사이트 구동을 먼저 해주세요.
3) certbot 을 사용하여 도메인 인증 및 인증서 발급
발급이 성공하면 다음 위치에 인증서 파일이 생성됩니다.
/etc/letsencrypt/live/examplesite.com/cert.pem
/etc/letsencrypt/live/examplesite.com/privkey.pem
/etc/letsencrypt/live/examplesite.com/chain.pem
4) 보안인증서 갱신 구성하기
서버당 최초 1회만 설정하면 됩니다.
인증서 유효기간이 3개월이므로, 3개월마다 재발급 후 적용해야 합니다. 자동 갱신 설정방법은 아래를 참조해주세요.
https://blog.lael.be/post/5107 이 글의 3번, 4번 인증서 갱신 적용하기

+ 공지글


+ 최근글


  • 글이 없습니다.

+ 새댓글


  • 댓글이 없습니다.

통계


  • 현재 접속자 33 명
  • 오늘 방문자 458 명
  • 어제 방문자 539 명
  • 최대 방문자 1,150 명
  • 전체 방문자 431,671 명
  • 오늘 가입자 0 명
  • 어제 가입자 0 명
  • 전체 회원수 19 명
  • 전체 게시물 46 개
  • 전체 댓글수 31 개