구글 클라우드 플랫폼에서 SSL을 사용하여 아파치 서버 설정

4228 단어 googlecloud
지난주에 나는 구글 클라우드 플랫폼에 아파치 웹 서버를 설치하는 방법에 관한 글을 썼다.이번 주에는 서버에 SSL 프로토콜을 추가하는 방법을 더욱 깊이 있게 소개할 것입니다.간단히 말해 SSL은 HTTP만 사용하는 웹 사이트보다 추가적인 보안 계층을 제공합니다.사실 이 프로토콜은 HTTPS라고 불리는데 그 중에서 "S"는 안전을 대표한다.우선, 우리는 SSL이 무엇인지, 그리고 그것이 왜 중요한지 이해할 것이다.

SSL이란 무엇입니까?


SSL(또는 HTTPS)은 두 가지 방법으로 보안을 제공하는 인터넷 프로토콜입니다.우선, 이것은 전형적인 사이트의 사용 기간에 전송된 데이터를 암호화한다.간단하게 말하면 암호화는 전송된 데이터를 암호화 키를 가진 사람만 읽을 수 있는 내용으로 혼란스럽게 한다.암호화되지 않은 경우 인터넷을 통해 전송된 정보는 간단한 텍스트를 읽을 수 있지만 암호화된 경우 암호화된 키로만 이 데이터를 읽을 수 있다.예를 들어 같은 와이파이 네트워크에 있는 사람은 컴퓨터로 보낸 네트워크 요청을 읽을 수 있다.간단한 구글 검색에는 무해하지만 은행 계좌나 신용카드가 검색 조합에 들어가면 무섭게 변한다.암호화로 인해 웹 요청 정보를 훔치는'나쁜 사람'은 무의미한 난잡한 정보만 볼 수 있습니다.그/그녀는 암호화 키가 없기 때문에, 이 정보들은 전혀 쓸모가 없다.
SSL은 또한 SSL 인증서를 사용하여 웹 사이트나 회사를 검증합니다.인증서는 인증 웹 사이트의 인증 기관(CA)에서만 배포됩니다.이러한 CA는 웹 사이트의 언행이 일치하고 완전한 합법성을 검증하는 역할을 합니다.웹 사이트를 방문할 때 브라우저는 이 영역의 인증서를 요청합니다.유효한 인증서가 있는 경우 CA는 해당 인증서를 브라우저로 다시 보내므로 사용자는 아무런 간섭 없이 작업을 계속할 수 있습니다.인증서가 없으면 브라우저는 사용자가 멀리 떨어져야 한다는 것을 알 수 있도록 웹 사이트가 안전하지 않다는 것을 알려 줍니다.

우리는 어디에서 증서를 받을 수 있습니까?


CA가 권위를 유지하기 위해 노력하고 있기 때문에 인증서는 매우 비싸게 사용될 수 있습니다.의심하는 바와 같이, 우리는 이 비싼 CA를 무료로 사용하지 않습니다. SSL과 Let's Encrypt는 SSL 인증서에 무료 옵션을 제공합니다.이 블로그에서 나는 Let's Encrypt를 사용할 것이다. 왜냐하면 나는 그것이 가장 사용하기 쉽다는 것을 발견했기 때문이다.

인증서 가져오기


인증서를 받으려면 Let's Encrypt으로 가십시오.이 글을 통독하는 것은 우리가 암호화하는 작업 원리를 이해하는 데 도움이 된다.그러나 Certbot이라는 서비스로 안내합니다.이 링크를 통해 Certbot에 소프트웨어와 시스템을 입력하십시오.여기서 Apache와 Debian 9(stretch)을 사용합니다.

이 정보를 입력하면 Certbot 설정 서버에 대한 설치 설명이 포함된 페이지로 안내됩니다.다음은 Debian 9(stretch)의 Apache 전용 설명입니다.

설명에 따라 구글 클라우드 플랫폼 가상 기기에서 셸 단말기를 사용합니다.가장 간단한 방법은 설명에 따라 한 단계에서 Certbot을 설치하는 것이지 인증서만 사용하는 방법이 아니다.
완료되면 다음 명령을 실행하여 서버를 다시 시작하십시오.
````sudo systemctl apache2 재부팅
이제 Apache 서버에서 유효한 인증서를 사용하여 SSL을 활성화해야 합니다.웹 사이트로 이동하여 확인하십시오.

문제 해결


사이트에서 SSL(주소란의 https:)을 사용하지 않으면 아파치 설정을 검증해야 합니다.
우선 Apache에 SSL을 사용할 수 있는지 확인합니다."/etc/apache2/sites-enabled"디렉터리에서 "default ssl.conf"라는 파일을 찾아야 합니다.이 파일에서 SSLEngine on 이 있는지 확인합니다."SSLengine off"를 발견하면 "SSLenging on"으로 변경합니다.
"default ssl.conf"파일의 끝에 "SSLcertificateFile/etc/letsencrypt/live/..."와 같은 줄이 있는지 확인합니다.이 행이 없으면 Certbot 명령을 다시 실행하십시오.

일반 HTTP 요청을 SSL로 재지정


우리가 해야 할 마지막 일은 포트 80(HTTP)에서 포트 443(SSL)으로 모든 요청을 다시 정하는 것이다.이를 위해 "/etc/apache2/sites-enabled"디렉터리에 있는 "000 default.conf"파일을 입력하십시오.여기서 모든 내용을 숫자 기호(#)로 주석하고 다음 코드를 입력합니다.


<VirtualHost *:80>
    ServerName [website address without http]
    Redirect permanent / https://[website address without http]
</VirtualHost>


여기에'http가 없는 사이트 주소'는 단지 사이트 주소를 무시하기 전의 http를 가리킨다.예를 들어 http://google.com은 구글로 쓰인다.일반 도메인 이름 형식입니다.내 특정 웹 사이트의 구성은 다음과 같습니다.


<VirtualHost *:80>
    ServerName brandonmichaelbrown.com
    Redirect permanent / https://brandonmichaelbrown.com
</VirtualHost>


여기서 무슨 일이 일어났습니까?물어봐서 반갑습니다.
여기서 아파치는 http://[사이트](포트 80)에서 https:/[사이트](포트 443)로 모든 요청을 리디렉션하도록 설정합니다.이렇게 하면 모든 비 SSL 통신이 새 SSL 호스트로 리디렉션됩니다.'permanent'키워드는 단지 방향을 바꾸는 것일 뿐이다.http://address를 사용하고 싶지 않기 때문에, 영구적으로 리디렉션하도록 설정합니다.영구 및 임시 리디렉션 here에 대한 더 많은 정보를 읽을 수 있습니다.

결론


나는 네가 너의 사이트를 새롭고 완벽한 SSL 인증 사이트로 바꿀 수 있기를 바란다.행운을 빌고 프로그래밍을 즐겁게 하세요!

좋은 웹페이지 즐겨찾기