Apache2 환경설정 생성기

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

사이트 설정
 리눅스 사용자 아이디(*)
 52.79.173.82 을 가리키고 있음.
 추가 연결 도메인
 추가 연결 도메인
 웹 루트 디렉토리

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

HTTP 만 사용하는 사이트



<VirtualHost *:80>
    ServerName 52-79-173-82.nip.io
        
    DocumentRoot /home/myuser1/52-79-173-82.nip.io

    <Directory /home/myuser1/52-79-173-82.nip.io>
        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}/52-79-173-82.nip.io-error.log
    CustomLog ${APACHE_LOG_DIR}/52-79-173-82.nip.io-access.log combined

</VirtualHost>

HTTPS (임시 인증서로 구동)

<VirtualHost *:80>
    ServerName 52-79-173-82.nip.io
        
    <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 52-79-173-82.nip.io
        
    DocumentRoot /home/myuser1/52-79-173-82.nip.io

    <Directory /home/myuser1/52-79-173-82.nip.io>
        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}/52-79-173-82.nip.io-error.log
    CustomLog ${APACHE_LOG_DIR}/52-79-173-82.nip.io-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 52-79-173-82.nip.io
        
    <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 52-79-173-82.nip.io
        
    DocumentRoot /home/myuser1/52-79-173-82.nip.io

    <Directory /home/myuser1/52-79-173-82.nip.io>
        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}/52-79-173-82.nip.io-error.log
    CustomLog ${APACHE_LOG_DIR}/52-79-173-82.nip.io-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/52-79-173-82.nip.io/cert.pem"
    SSLCertificateKeyFile "/etc/letsencrypt/live/52-79-173-82.nip.io/privkey.pem"
    SSLCertificateChainFile "/etc/letsencrypt/live/52-79-173-82.nip.io/chain.pem"

    # Turn on OCSP stapling
    SSLUseStapling on
    SSLStaplingResponderTimeout 5
    SSLStaplingReturnResponderErrors off

</VirtualHost>

임시 인증서 준비 하는법

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

LetsEncrypt 인증서 발급하는법

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

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

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

+ 공지글


+ 최근글


  • 글이 없습니다.

+ 새댓글


  • 댓글이 없습니다.

통계


  • 현재 접속자 41 명
  • 오늘 방문자 163 명
  • 어제 방문자 215 명
  • 최대 방문자 1,150 명
  • 전체 방문자 434,115 명
  • 오늘 가입자 0 명
  • 어제 가입자 0 명
  • 전체 회원수 19 명
  • 전체 게시물 46 개
  • 전체 댓글수 31 개