Ubuntu 16.04에서 자체 서명 된 TLS / SSL 인증서로 Apache 구성

SSL 및 후속 TLS (Secure Sockets Layer / Transport Layer Security)는 클라이언트와 서버 사이에 암호화 계층을 추가합니다. 이 기술이 없으면 데이터가 일반 텍스트로 서버에 전송되어 타사에서 서버가 보내고받는 모든 정보를 읽을 수 있습니다.

이 튜토리얼은 SSL / TLS 인증서를 생성하고 Ubuntu 16.04의 Apache 2.4에서 활성화하는 방법을 알려줍니다. Apache가 이미 설정되어 실행 중이라고 가정합니다. LAMP 스택을 설치하는 방법을 배우려면 이 Vultr 문서를 참조하십시오 .

주의

SSL / TLS 인증서는 일반적으로 신뢰할 수있는 CA (인증 기관)에서 생성합니다. 직접 생성하면 서명자가됩니다. 즉, 브라우저는 인증서의 신원을 신뢰할 수 있는지 여부를 확인할 수 없으며 사용자에게 경고합니다. 이 경고를 무시할 수 있지만 공용 사이트는 신뢰할 수있는 CA에서 서명 한 인증서를 사용해야합니다. 암호화하자 인증서를 무료로 제공하는 CA입니다. 여기 에서 Apache 및 Ubuntu 16.04에 인증서를 설치하는 방법을 배울 수 있습니다 .

내부 응용 프로그램의 경우, 특히 도메인 이름이없는 경우 자체 서명 된 인증서를 사용하는 것이 유효 할 수 있습니다.


1 단계 : 인증서 생성

  1. 먼저 파일을 저장할 장소를 만들어 봅시다.

    mkdir ~/certificates
    cd ~/certificates
    
  2. CSR 및 개인 키를 생성하십시오.

    openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
    

    인증서 요청에 대한 정보를 요청합니다. 적절한 정보를 작성하십시오.

    Country Name (2 letter code) [AU]: US
    State or Province Name (full name) [Some-State]: FL
    Locality Name (eg, city) []: Miami
    Organization Name (eg, company) [My Company]: My Company
    Organizational Unit Name (eg, section) []:
    

    공통 이름은 도메인 이름 또는 서버의 IP 주소 여야합니다. 또한 이메일을 작성하십시오.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. 이제 인증서를 Apache 구성 폴더로 이동하십시오.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. 인증서가 준비되었습니다! 다음으로 Apache가 인증서를 사용할 수 있도록 준비합니다.

2 단계 : 방화벽 구성

  1. TCP 포트 443이 열려 있는지 확인해야합니다. 이 포트는 포트 80 대신 SSL 연결에 사용됩니다.이 자습서에서는 UFW를 사용합니다.

  2. UFW가 활성화되어 있는지 확인하십시오.

    sudo ufw enable
    
  3. 이제 방화벽에 대해 사전 정의 된 Apache 설정을 허용하십시오.

    sudo ufw allow 'Apache Full'
    
  4. " sudo ufw status" 를 입력 하면 현재 규칙 목록을 볼 수 있습니다. 구성은 다음과 유사해야합니다.

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. 향후 연결을 위해 여기서 OpenSSH를 허용해야합니다.

    sudo ufw allow 'OpenSSH'
    

3 단계 : Apache 가상 호스트 구성

  1. 기본 Apache 사이트 구성 디렉토리로 이동하십시오.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. 이 파일은 서버에게 SSL 인증서를 찾을 위치를 알려줍니다. 주석이 제거되면 다음 구성과 같아야합니다.

    <IfModule mod_ssl.c>
      <VirtualHost _default_:443>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www/html
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    
       SSLEngine on
    
       SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
       </Directory>
    
     </VirtualHost>
    </IfModule>
    
  3. 이 줄을 편집하십시오.

    ServerAdmin [email protected]
    
  4. ServerAdmin줄 바로 아래에 이것을 추가하십시오 :

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. 이제 인증서 위치로 다음 행을 편집하십시오.

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. 최종 파일은 다음과 유사해야합니다.

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin [email protected]
      ServerName 203.0.113.122
    
      DocumentRoot /var/www/html
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
      SSLEngine on
    
      SSLCertificateFile    /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
      <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
      </FilesMatch>
      <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
      </Directory>
    
     </VirtualHost>
    </IfModule>
    
  7. 파일을 저장하고 닫습니다.

4 단계 : Apache SSL 모듈 활성화

  1. 다음을 입력하여 SSL 모듈을 사용하십시오.

    sudo a2enmod ssl
    
  2. 이제 방금 편집 한 사이트를 활성화하십시오.

    sudo a2ensite default-ssl.conf
    
  3. Apache를 다시 시작하십시오.

    sudo service apache2 restart
    
  4. 새로운 보안 웹 사이트에 액세스하십시오! 브라우저에서 엽니 다 ( https : // 를 입력해야합니다 ).

    https://YOUR_SERVER_IP
    

브라우저가 예상대로 인증서가 유효하지 않다고 경고합니다. 인증서가 서명되지 않았기 때문에 발생합니다. 브라우저에서 제공하는 단계에 따라 사이트로 진행하십시오.

5 단계 : 모든 HTTP 트래픽을 HTTPS로 리디렉션 (선택 사항)

  1. Apache 기본 가상 호스트 파일을여십시오.

    nano /etc/apache2/sites-available/000-default.conf
    
  2. <VirtualHost *:80>태그 안에이 줄을 추가하십시오 :

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Apache 구성을 다시로드하십시오.

    sudo service apache2 reload
    

이제 모든 웹 사이트 트래픽이 자동으로 HTTPS로 리디렉션됩니다.



Leave a Comment

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.