무료 SSL 보안 인증서 발급받기 (Free SSL Certificate)

Let's Encrypt 에서 시작된 무료 SSL 인증서 발급 서비스는 

비싼 년간 갱신 비용을 지불하면서 유료로 SSL 인증서를 발급받아 유지하지 않아도 되는 획기적인 방향을 제시했습니다.

물론 3개월마다 인증서를 갱신해야 하는 번거로움은 있습니다.

이런 불편함에도 불구하고 와일드카드 인증서와 멀티도메인 인증서까지 무료로 발급할 수 있는 매력은 소규모 사이트에 SSL 보안 인증서를 적용하는 부담을 상당히 줄여줍니다.

또, 3개월마다 갱신해야하는 인증서를 자동으로 갱신처리를 해주는 프로그램들도 있기 때문에 생각보다 갱신으로 인한 불편함은 적은 편입니다.

무료 SSL 인증서를 발급할 때 좋은 점은 웹서버에서 미리 인증서 요청을 생성하지 않아도 되는 것입니다.

무료 SSL 인증서를 발급해봅니다.

무료 SSL 인증서 발급은 2단계로 진행됩니다.

첫번째 단계는 인증서를 발급.

두번째 단계는 발급받은 인증서를 바로 웹서버에 적용 가능한 SSL 인증서 백업 파일로 변환.( *.pfx파일 ) 하는 것입니다.

발급받은 인증서를 인증서 백업파일로 변환하는 것은, 최초 인증서 요청을 생성하지 않았기 때문에 발급 받은 인증서 만으로로는 웹서버에 적용할 수 없기 때문에 인증서를 백업했다 복원하는 방식으로 인증서를 설치할 수 있도록 하기 위해서 입니다.


무료 SSL 인증서 발급_

인증서를 발급받기전 준비사항

무료 SSL 인증서를 발급받으려면 도메인 소유권 증명을 해야하기 때문에 다음 2가지중 한가지가 가능해야 합니다.

A. 도메인 인증 파일을 업로드하는 방식 - 무료 SSL 인증서를 발급받는 도메인이 설정된 웹호스팅, 또는 단독 서버가 있어야 합니다.

해당 웹사이트에 폴더 생성 및 파일 업로드가 가능해야 합니다. 또는 FTP서비스가 웹사이트로 설정된 서버(호스팅) 폴더와 연결되어 있어야 합니다.

"http://도메인" 으로 해당 사이트에 접근 가능해야 합니다.

실제 웹사이트는 구성되어있지 않아도 됩니다. 특정 폴더 위치에 소유자 인증 파일에 접근만 가능하면 됩니다.

B. DNS를 이용해 도메인 인증 키값을 TXT 필드에 적용. 

DNS 호스팅을 하고 있는 경우(웹호스팅, 또는 외부 네임서버 서비스 이용) DNS 관리 기능으로 TXT 필드를 생성할 수 있어야 합니다. 

자체 네임서버(DNS 서버)를 사용하는 경우 네임서버에 TXT 필드를 추가하면 됩니다.

본인 소유 도메인이 아니면 SSL 인증서는 발급받을 수 없습니다.

https://www.sslforfree.com/

사이트에 접속합니다.

영어 몰라도 발급받는데는 별 어려움은 없지만, 어설픈 한글사이트라도 원한다면 우측 상단에 구글 번역기가 붙어있으므로 구글 번역기를 이용해도 됩니다.

영문으로 설명합니다.

맨 위에는 도메인 입력난이 있습니다.

여기에 무료 SSL 인증서를 발급받을 도메인 명을 입력하게 됩니다.

보통은 서브도메인 없이 1차 도메인명(mydomain.com)만을 입력하면 됩니다.

설명에서는 2차 도메인을 위한 무료 SSL 인증서를 하나 발급받아봅니다.

그 아래에는 간단한 사용 설명과 지원사항 등일 자세하게 나와있습니다.

도메인을 발급받기 전에 알아두면 좋은 내용입니다.

Let's Encrypt 무료 SSL 인증서는 상용 인증서 발급 서비스와 동일한 수준의 다양한 인증서 발급 기능을 제공합니다.

Let's Encrypt 무료 SSL 인증서 발급 지원 사항

Let;s Encrypt 기반 무료 인증서 발급은 아래와 같은 다양한 인증서 형태의 SSL 인증서 발급을 지원합니다.

1. 와일드카드 SSL 인증서 지원 

1차 도메인 앞에 서브도메인으로 "*" 를 붙여 와일드카드 SSL 인증서를 지원합니다.

*.mydomain.com

으로 인증서를 발급받으면 mydomain.com 하위 도메인 모두에 대해서 SSL 적용이 가능합니다.

2. www 도메인 인증서 자동 생성

1차 도메인명으로 SSL 보안 인증서를 생성하면 자동으로 www 하위 도메인에 대한 인증서까지 생성 해줍니다.

한번에 SSL 인증서가 2개가 발급됩니다.(1차 도메인용, www 서브 도메인용)

3. 서브도메인 별로 개별 SSL 인증서 생성

개별 서브 도메인 단위로 SSL 인증서를 1개씩 생성

4. 멀티도메인 인증서 생서 지원

도메인 입력난에 공백으로 띄워 2개 이상의 도메인을 입력하면 입력한 도메인들 모두에 대한 인증서를 일괄 생성해줍니다.

1차 도메인을 입력하면 자동으로 www가 붙은 하위도메인까지 입력해줍니다.

도메인 소유권 인증을 하는 3가지 방법(가능한 방법으로 택1)

무료 SSL 인증서를 발급할 도메인 명을 입력하고 "Create Free SSL Certificate" 버튼을 누릅니다.

소유권 인증 방법을 선택하는 화면이 나옵니다.

소유권 인증 방법은 총 3가지가 가능합니다.

1. "Automatic FTP Verification" - FTP 를 이용한 자동 처리 방식

2. "Manual Verification" - 소유권 인증 파일을 다운로드받아 직업 업로드

3. "Manual Verification" - DNS에 TXT 레코드로 소유권 인증 키를 추가

1과 2번은 웹호스팅 공간, 또는 서버에 특정 폴더가 만들어지고, 그 안에 소유권 인증 파일을 업로드하면 sslforfree.com 서버가 해당 "http://도메인/소유권인증파일" URL로 접근해 소유권이 있는지 확인합니다.

http로 웹사이트에 접근이 가능해야 합니다.

1번은 웹사이트와 경로를 공유하는 FTP 가 있어야만 사용 가능합니다. 

FTP 정보 입력 양식에 FTP 접속 정보를 입력하면 sslforfree.com 서버에서 자동으로 해당 FTP로 로그인 해 폴더를 생성하고, 소유권 인증용 파일 업로드까지 해줍니다.

3번은 DNS에 TXT 레코드를 추가할 수 있어야 합니다. 

네임서버 호스팅을 이용하는 경우에도 대부분 DNS 관리 기능은 제공하므로 이 기능을 이용하면 됩니다.

http로 접근가능한 웹사이트가 아직 준비되어 있지 않은 경우, 또는 인터넷으로 접근할 수 없는 인트라넷, 개발용 서버, 방화벽 뒤에 있어서 80포트 접근이 제한된 경우 DNS 인증 방식을 사용하면 됩니다.

1. DNS 인증 방법부터 해봅니다.

"api.apost.dev" 이라는 서브 도메인을 위한 인증을 한다고 할 경우

1. "Manual Verification (DNS)" 를 클릭.

2. DNS 인증하는 방법에 대한 안내가 나옵니다. "Manually Verify Domain" 버튼을 클릭.

3. "Manually Verify Domain" 버튼 밑으로 DNS  "TXT" 레코드로 등록할 내용이 표시됩니다.

4. 도메인 관리 기능, 또는 네임서버의 해당 도메인에 TXT 레코드를 표시되는 내용대로 추가합니다.

일부 네임서버 호스팅 관리 도구에서는 "_"(언더바)와 같은 특수 문자 입력이 제한된 경우가 있습니다.

이런 경우에는 이 방법을 사용할 수 없습니다.

5. "Verify _acme-challenge.내도메인" 링크를 클릭해 TXT 레코드가 적용되었는지 확인합니다.

TXT 레코드가 적용되지 않았을 경우 "No TXT Record Found. Make to set the TTL to 1 second or if you cannot set the TTL then you must wait the TTL (in seconds) so it updates before verifying the domain. Contact your DNS provider if unsure." 메시지가 표시됩니다. 

이 경우 TXT 레코드가 잘못 적용된 것이므로 문제점을 찾아 수정해야 합니다.

6. TXT 레코드가 적용되었으면 "Download SSL Certificate" 버튼을 누르면 인증서 압축파일이 다운로드 됩니다.

"I Have My Own CSR"은 체크하지 않습니다. 이 항목은 인증서 요청을 생성한 경우에만 사용합니다.

2. 웹사이트 특정 폴더에 소유권 인증용 파일을 직접 업로드합니다.

1, 소유권 인증 방식으로 "Manual Verification" 을 선택합니다.

2. "Manually Verify Domain" 버튼을 클릭

3. 수동 인증을 위한 안내가 표시됩니다.

4. "Download File #1"을 클릭해 소유권 인증 파일을 다운로드 합니다.

도메인 명으로 1차 도메인을 입력했으면 다운로드 링크가 2개가 표시되며, 두개 모두 다운로드 및 업로드를 해야 합니다.

5. 웹사이트 루트에 

.well-known

ㄴ acme-challenge

구조대로 폴더를 생성합니다.

"well-known" 앞에 마침표가 있는점을 주의해야 합니다.

6. 다운로드한 파일을 "acme-challenge" 폴더 안에 저장(업로드)합니다.

7. 5번의 링크를 클릭해 업로드한 파일이 접근이 가능한지 확인합니다.

http 로 접근이 가능한 경우 인증 파일 안의 키 값이 표시됩니다.

1차 도메인을 신청하는 경우 확인 링크가 2개가 표시됩니다. 두개 모두 클릭해 인증 키가 보이는지 확인해야 합니다.

8. "Download SSL Certificate" 버튼을 눌러 인증서 파일을 생성 합니다.

9. 인증서 생성이 완료되고 인증서 발급 정보가 표시되면 "Download All SSL Certificate Files" 버튼을 클릭합니다.

인증서 압축파일이 다운로드 됩니다.

3. FTP 자동인증. 

웹사이트에 FTP가 연동되는 경우, 인증서 발급 전 소유권 인증 페이지에서 FTP 정보만 입력하면 자동으로 인증 처리가 완료됩니다.

접속 FTP 계정은 반드시 폴더 생성 및 읽기/쓰기 권한이 있어야 합니다.

1. "Automatic FTP Verification" 클릭

2. 밑에 표시되는 FTP 접속 정보 폼에 연결 정보 입력

3. "Download Free SSL Certificate" 클릭해 인증서를 생성합니다.

4. 인증서 생성이 완료되고 인증서 발급 정보가 표시되면 "Download All SSL Certificate Files" 버튼을 클릭합니다.

인증서 압축파일이 다운로드 됩니다.


SSL 인증서 백업 파일로 변환하기_

발급받은 인증서는 인증요청 없이 발급받은 인증서이기 때문에 웹서버에 설치하려면 인증서 백업 파일 형태로 변환해야 합니다.

https://www.sslshopper.com/ssl-converter.html

사이트에 접속합니다.

1. sslforfree.com 에서 다운로드 받은 무료 SSL 인증서 zip 파일의 압축을 풉니다.

인증서 파일은 "ca_buldle.crt", "certificate.crt", "private.ke" 3개로 구성됩니다.

2. 폼의 "Type To Convert To" 목록에서 "PFX/PKCS#12" 를 선택합니다.

업로드할 인증서 파일을 선택하는 항목이 1개에서 4개로 늘어납니다.

4개의 업로드 파일 선택 필드중 상단의 2개만 사용합니다.

3, 맨위 "Cerfificate Files to Convert" 필드의 "파일 선택" 을 클릭해 압축을 풀어놓은 인증서 파일들 중 "certificate.crt" 파일을 선택합니다.

두번째 "Private Key File" 필드의 "파일 선택" 을 클릭해 "private.key" 파일을 선택합니다.

4. "Type of Current Certificate" 는 "Standard PEM" 을 선택합니다.

5. "Convert Certificate" 버튼을 클릭합니다.

"certificate.pfx" 파일이 다운로드 됩니다.

오픈SSL 을 사용하는 경우 커멘드라인으로 직접 인증서 백업 파일로 변환이 가능합니다.

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

이제 다운로드 받은 SSL 인증서 백업파일( certificate.pfx )을 웹서버에서 등록하면 됩니다.