[HTTPS] Ubuntu/Apache2 SSL 인증서 설치

H.yeong·2022년 12월 8일
post-thumbnail

⚡ 서버 :: 리눅스, Ubuntu/Apache2

📃 SSL인증서 구매처 :: 가비아

🔖 도메인 :: 메일플러그


🌵 1. SSL 인증서 구매 / 인증 절차

CSR 생성

인증서 발급을 위한 정보(도메인, 회사명, 담당자 등)를 담은 데이터로 서명요청을 하는건데...
인증서 구매 직후 My가비아 페이지에서 CSR 생성으로 연결되는 콘솔버튼이 생성됨.
WHOIS에 등록된 정보대로 도메인과 회사정보를 입력하면 됨.
📌 가비아 CSR 생성 가이드 >> https://customer.gabia.com/manual/hosting/433

인증서를 인증하란다...

인증방법은 총 3가지

  • 메일 >> WHOIS에 등록된 이메일로 인증메일 받기
  • 웹(HTTP) >> 가비아에서 제공하는 텍스트파일을 서버에 업로드
  • DNS 레코드 >> 네임서버에 가비아에서 제공한 레코드 값을 등록

세가지 방법 모두 시도해보고 알차게 시간 낭비해 본 결과 메일 인증이 가장 빠르고 간편하다.
인증서 구매 직후 인증방법을 고를 때 메일 인증을 선택하면서 WHOIS 이메일로 지정하면 된다.
(WHOIS 에 도메인을 조회하여 이메일 확인.)

📌가비아 웹 인증 가이드 >> https://customer.gabia.com/manual/hosting/434

혹시나 다른 인증방법을 시도했다가 잘 되지않아 후에 메일인증을 하게 된다면(나처럼)
그때는 WHOIS 등록 이메일로 고를 수가 없다...(나처럼)당황하지 말고 고객센터에 문의하면 됨.

메일 인증을 끝내면 가비아에 등록한 관리자메일로 인증서 다운로드 링크와
개인키 파일이 첨부된 메일을 받을 수 있다.
이 파일들을 전부 서버에 업로드 하면 된다. (SFTP or FTP 사용)

📂 파일 구성
파일구성과 파일명은 발급처에 따라 달라진다.

 도메인_key.pem               >>  개인키파일
 CA_GLOBALSIGN_ROOT_CA.crt   >>  루트인증서
 ChainFile_ChainBundle.crt   >>  중개 인증서
 File__(도메인).crt           >>  SSL 인증서


🌵 2. 서버에 인증서 업로드

❗ 서버환경에 따라 디렉토리 구성은 다르니 참고만

Apache2 서버에서 SSL 인증을 하기 위해서는 openssl 이 필요하다.
아파치 서버에 기본으로 설치되어 있다는데 혹시 모르니 설치확인 한 후 진행.

  • 개인키/인증서 파일 확인

개인키와 인증서 파일이 일치 하는지 확인해야하는데
이때 인증서 파일들이 /root 디렉토리에 위치해야한다. 아래 명령어를 입력해서 확인해보자.
명령어 입력 후 (stdin) = 숫자 어쩌구 영어 저쩌구 가 서로 동일하면 일치하는 파일이라는 뜻.

openssl rsa -in (개인키파일명) -modulus -noout | openssl md5
openssl x509 -in (SSL인증서파일명) -modulus -noout | openssl md5
  • /etc/apach2/ssl 디렉토리 생성

/etc/apach2 폴더 안에 인증서들을 보관할 ssl 폴더를 만든 후 개인키, 인증서 파일들 모두를 복사해 넣어놨다.
보안 강화를 위해 추가로 아래 명령어들을 입력해 권한설정을 해주었다.

	chown -R root:root /etc/apache2/ssl  // 소유자 설정
    chmod 600 /etc/apache2/ssl/*.*       // 폴더 안에 있는 파일들에 대한 읽기쓰기 권한
    chmod 700 /etc/apache2/ssl           // ssl 폴더의 읽기,쓰기,실행 권한


🌵 3. conf 파일 설정

내 서버의 apache2 폴더 안 구성은 아래 이미지와 같다.

  • /etc/apache2/sites-available

	default-ssl.conf     >> https 로 접속했을 때
	default.conf         >> http 로 접속했을 때

default-ssl.conf 를 복사해서 수정해서 사용하면 된다.
복사한 파일의 이름은 편의상 '도메인-ssl.conf' 로 지정했다.
(httpd-ssl.conf 일 수도 있다.)

  • ssl.conf

	<VirtualHost _default_:443>
    	ServerName 도메인.com
		ServerAlias www.도메인.com
		ServerAdmin webmaster@localhost
		

		DocumentRoot /home/public_html
        이 아래로 어쩌구 내용이 많은데 딱 세가지만 확실하게 수정하면 된다.
        
        SSLEngine on 
        SSLCertificateFile	/etc/apache2/ssl/인증서파일
		SSLCertificateKeyFile  /etc/apache2/ssl/개인키파일 
        
        위 세가지는 기본으로 주석이 해제 되어있어서 인증서 파일이 있는 경로로만
        수정해주면 되는데 아래에 보면 중개사 인증서를 넣는 곳은 주석처리가 되어있다.
        
        SSLCertificateChainFile /etc/apache2/ssl/중개사 인증서 파일 
        (얘는 안 넣어도 되는거 같은디..걍 넣어줘봤음)
	</VirtualHost>	

저장하고 apache2 서버를 재시작 한 후 https://도메인.com 으로 접속해보자.
접속이 된다면 인증이 된거다!!
다 하고 보니 이렇게 간단한건데 나는 왜 그렇게 고생을 했던걸까...
알 수 없다 지난 이틀이 생각이 나지 않는다.
가비아에 있는 가이드만을 참고 하기엔 서버환경이나..파일명들이 달라 좀 헤맸던 것 같다.



🌵 4. https로 리다이렉트

SSL 인증이 완료되어 https로 접속이 되는 것 까지 확인이 되었다면
이제 내 사이트에 접속했을 때 알아서 https로 접속이 되도록 설정해주어야 한다.

  • sites-enabled/conf

	<VirtualHost *:80>
    
		RewriteEngine On
    	RewriteCond %{HTTPS} off
    	RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    
    </VirtualHost>

위 세줄만 파일안에 추가해주면 된다.
여기서 주의할 점은 ssl.conf가 있었던 sites-available 이 아닌
sites-enabled 폴더 안에 있는 conf 파일에 추가해야 된다는 것.

이것으로 ssl 인증이 끝났다.
이제 내 사이트에 접속하면 도메인 옆에 느낌표가 아닌 자물쇠가 표시된다.
든든하다...

profile
어떻게든 되겠지!

0개의 댓글