Ubuntu 18.04 VPS 또는 전용 서버에서 암호화 할 수있는 Apache 보안 방법

소개

Let ‘s Encrypt는 비영리 ISRG (Internet Security Research Group)에서 설계 한 무료의 신뢰할 수있는 자동화 된 인증 기관 (CA)입니다. CA는 완전 자동화 된 프로세스를 사용하여 무료 SSL / TLS 인증서를 제공하여 수동으로 SSL 인증서를 생성, 설치, 확인 및 갱신 할 필요가 없도록합니다…


Let ‘s Encrypt는 안전하고 투명하며 협력 적이며 자동이기 때문에 최고의 프로그램에서 신뢰합니다. CA는 웹 사이트에 HTTPS를 활성화하고 개인 정보 보호 및 보안 웹을 만드는 데 필요한 디지털 인증서를 제공합니다..

이 튜토리얼은 Ubuntu 18.04 VPS 호스팅 또는 전용 서버 호스팅의 안정적인 certbot 도구를 통해 Let ‘s Encrypt를 사용하여 Apache 서비스를 보호하는 데 도움이됩니다..

준비된? 시작하자!

시작하기 전에

이 프로세스가 원활하게 실행 되려면 다음이 필요합니다.

  • 도메인
  • 서버에 설치된 Apache
  • 도메인 이름에 대해 완전히 구성된 Apache 가상 호스트. 당신은 우리의 가이드를 사용할 수 있습니다 “Ubuntu 18.04에서 Apache 가상 호스트를 설정하는 방법” 가상 호스트를 구성하는 방법.

모든 것이 제자리에 있다면 설치를 시작할 수 있습니다.

1 단계-Certbot 설치

Let ‘s Encrypt로 Apache를 보호 할 때 가장 먼저 certbot 도구를 설치하는 것입니다. 이 도구는 Let ‘s Encrypt에서 SSL 인증서를 가져오고 갱신하는 프로세스를 자동화하고 간소화합니다. 또한 이러한 인증서를 사용하도록 웹 서버를 구성하는 데 도움이됩니다..

먼저 로컬 패키지 색인을 업데이트하십시오.

$ 스도 아파트 업데이트

그런 다음 아래 명령을 실행하여 Certbot을 설치하십시오.

$ sudo apt install certbot

그게 다야! certbot 도구를 성공적으로 설치했습니다.

2 단계-강력한 DH 그룹 생성

DH 또는 Diffie Hellman 그룹은 보안되지 않은 통신 채널을 통해 암호화 키를 쉽게 교환 할 수있는 안전한 환경을 만드는 안정적인 키 교환 그룹입니다..

아래 명령을 실행하여 2048 비트 DH 문자 세트를 작성하십시오.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

노트 : 원하는 경우 2048 크기를 4096으로 바꿀 수 있습니다. 이렇게하면 시스템 엔트로피에 따라 DH 매개 변수 생성에 30 분 이상이 걸릴 수 있으므로 인내심을 가져야합니다..

3 단계-SSL 인증서 받기

Dh 그룹이 생성되면 고유 도메인에 필요한 SSL 인증서를 얻을 수 있습니다. 이 튜토리얼에서는 example.com 우리의 도메인 이름으로; 이 값을 실제 도메인 이름으로 바꾸십시오..

이 단계에서는 Webroot 플러그인을 사용하여 파일을 만듭니다. example.com 디렉토리에 $ {webroot-path} /. well-known / acme-challenge. Let ‘s Encrypt의 유효성 검사 서버는 도메인의 DNS가 certbot 도구를 실행하는 서버로 확인되는 것을 인증하기 위해 HTTP 이의 제기를합니다..

우리는 단순히 HTTP 항목을 .잘 알려진 / acme- 도전 에 / var / lib / letsencrypt. 이제 아래 명령을 실행하여 필요한 디렉토리를 작성하고 Apache 서버에 쓸 수 있도록하십시오..

$ sudo mkdir -p /var/lib/letsencrypt/.well-known
$ chudo chgrp www-data / var / lib / letsencrypt
$ sudo chmod g + s / var / lib / letsencrypt

다음으로, 코드 복제를 방지하기 위해 두 개의 고유 한 구성 스 니펫을 작성하십시오. 먼저, 아래 명령을 실행하여 첫 번째 구성 파일을여십시오.

$ sudo nano /etc/apache2/conf-available/letsencrypt.conf

이 파일에 아래 내용을 추가하십시오.

별칭 / 잘 알려진 / acme-challenge / "/var/lib/letsencrypt/.well-known/acme-challenge/"

AllowOverride None
옵션 MultiViews 인덱스 SymLinksIfOwnerMatch에 NoExec 포함
메소드 필요 POST 옵션 가져 오기

이 파일을 저장하고 종료하십시오.

그런 다음 아래 명령을 실행하여 두 번째 구성 파일을 엽니 다.

$ sudo /etc/apache2/conf-available/ssl-params.conf

아래 내용을 복사하여이 파일에 붙여 넣습니다.

SSLCipherSuite EECDH + AESGCM : EDH + AESGCM : AES256 + EECDH : AES256 + EDH
SSL 프로토콜 모두 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
헤더는 항상 설정 됨"최대 연령 = 63072000; includeSubDomains; 예압"
헤더 항상 설정 X-Frame-Options DENY
헤더 항상 설정 X-Content-Type-Options nosniff
# 아파치 필요 >= 2.4
SSL 압축 해제
SSL 사용
SSLStaplingCache "shmcb : 로그 / 스테이플 링 캐시 (150000)"
# 아파치 필요 >= 2.4.11
SSLSessionTickets 해제

SSLOpenSSLConfCmd DH 매개 변수 "/etc/ssl/certs/dhparam.pem"

파일을 저장하고 종료하십시오.

노트 : 두 번째 구성 스 니펫은 HSTS (HTTP Strict Transport Security)에서 승인 한 치퍼를 사용하고 Cipherli.st. 이 스 니펫은 보안 중심 HTTP 헤더를 시행하고 OCSP 스테이플 링을 활성화합니다.

이제 아래 명령을 실행하여 활성화하십시오. 아파치 SSL 모듈 그리고 mod_headers:

$ 스도 a2enmod ssl
$ sudo a2enmod 헤더

그런 다음 아래 명령을 실행하여 SSL 가상 호스t와 ssl-params.conf 파일:

$ sudo a2enconf letsencrypt
스도 a2enconf SSL 매개 변수

Apache 구성을 다시 시작하여 변경 사항을 구현하십시오.

$ sudo systemctl reload apache2

단계가 설정되었으며 이제 Webroot 플러그인을 사용하여 certbot을 구현하여 SSL 인증서를 얻을 수 있습니다.

$ sudo certbot certonly –agree-tos –email [email protected] –webroot -w / var / lib / letsencrypt / -d example.com -d www.example.com

인증서를 받으면 아래와 같은 메시지가 나타납니다.

중요 사항 :
– 축하합니다! 인증서와 체인은 다음 위치에 저장되었습니다.
/etc/letsencrypt/live/example.com/fullchain.pem
키 파일이 (가) 다음 위치에 저장되었습니다 :
/etc/letsencrypt/live/example.com/privkey.pem
귀하의 인증서는 2018-10-28에 만료됩니다. 새로운 또는 조정 된을 얻으려면
이 인증서의 버전은 나중에 certbot을 실행하기 만하면됩니다.
다시. 인증서를 모두 대화식으로 갱신하지 않으려면 다음을 실행하십시오.
"certbot 갱신"
– Certbot을 좋아한다면 다음을 통해 작업 지원을 고려하십시오.

ISRG에 기부 / 암호화하자 : https://letsencrypt.org/donate
EFF에 기부 : https://eff.org/donate-le

4 단계-가상 호스트 파일 구성 수정

고유 도메인의 구성 파일을 열려면 아래 명령을 실행하십시오.

$ sudo nano /etc/apache2/sites-available/example.com.conf

이 파일에 아래 내용을 추가하십시오.

ServerName example.com
ServerAlias ​​www.example.com

영구적 인 / https://example.com/

ServerName example.com
ServerAlias ​​www.example.com

영구적 인 / https://example.com/

DocumentRoot /var/www/example.com/public_html
ErrorLog $ {APACHE_LOG_DIR} /example.com-error.log
CustomLog $ {APACHE_LOG_DIR} /example.com-access.log 결합

SSLEngineOn
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

# 다른 아파치 설정

다음으로 Apache 서비스를 다시로드하십시오.

$ sudo systemctl reload apache2

웹 사이트를 열고 녹색 자물쇠 아이콘이 표시되는지 확인하십시오

5 단계-자동 갱신 설정

새로 설치된 SSL 인증서는 90 일 동안 만 유효합니다. 만료일 전에 SSL 인증서를 자동으로 갱신하도록 Certbot 패키지를 설정할 수 있습니다. 패키지는 하루에 두 번 실행되는 cronjob을 생성하여 만료되기 한 달 전에 인증서를 갱신합니다..

SSL 인증서가 자동으로 갱신 될 때마다 Apache 서비스를 다시로드해야합니다. 이를 활성화하려면 /etc/cron.d/certbot 파일 –갱신 후크 "systemctl reload apache2", 훅.

이 파일은 다음과 같습니다.

0 * / 12 * * * 루트 테스트 -x / usr / bin / certbot -a! -d / run / systemd / system && 펄 -e ‘sleep int (rand (3600))’ && certbot -q renew –renew-hook "systemctl reload apache2"

그런 다음 아래 명령을 실행하여 자동 갱신을 확인하십시오.

 $ sudo certbot renew-드라 이런

오류가 없으면 자동 SSL 인증서 갱신 프로세스가 올바르게 설정된 것입니다.

결론

그게 다야! certbot 도구와 Let ‘s Encrypt를 사용하여 특정 도메인 이름에 대한 SSL 인증서를 얻었습니다..

이 3 가지 Linux 호스팅 서비스를 확인하십시오.

FastComet

시작 가격 :
$ 2.95


신뢰할 수 있음
9.7


가격
9.5


사용자 친화적
9.7


지원하다
9.7


풍모
9.6

리뷰 읽기

FastComet 방문

주인공

시작 가격 :
$ 0.99


신뢰할 수 있음
9.3


가격
9.3


사용자 친화적
9.4


지원하다
9.4


풍모
9.2

리뷰 읽기

Hostinger 방문

ChemiCloud

시작 가격 :
$ 2.76


신뢰할 수 있음
10


가격
9.9


사용자 친화적
9.9


지원하다
10


풍모
9.9

리뷰 읽기

ChemiCloud 방문

관련 사용법 기사

  • Apache Web Server를 사용하여 Ubuntu 18.04에서 WordPress Multisite를 설정하는 방법
    중급
  • Ubuntu 18.04 VPS에서 실행되는 Apache의 KeepAlive 설정을 구성하는 방법
    중급
  • Ubuntu 18.04 VPS 또는 전용 서버에서 Apache Mod_Rewrite를 활성화하는 방법
    전문가
  • 우분투 18.04에서 .htaccess 파일을 사용하는 방법
    초보자
  • Apache, MySQL 설치 방법 & Ubuntu 18.04 VPS 또는 전용 서버의 PHP
    중급
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me