맥북으로 AMP 구성하기 3 - SSL

인증서를 발급받고 적용한뒤
아파치에서 설정해주면 된다

시작하기 전에
/usr/local 이
/opt/homebrew로 경로가 바뀌었다

Visual Studio Code

기본 텍스트 에디터 대신 VSC 사용하기
$ brew install --cask visual-studio-code
open -e 기본 텍스트 에디터 사용하는 방법
code /opt/homebrew/etc/httpd/httpd.conf VSC 사용하는 방법
$ code /opt/homebrew/etc/httpd/httpd.conf

zsh: command not found: code 오류
명령어를 찾을 때 사용하는 PATH에 code가 등록되어 있지 않아서 발생하는 오류
1. Command Palette열기
cmd + shift + p
2. Shell Command: Install 'code' command in PATH
3. 터미널에서 [ code . ] 를 입력하면 vsc 창이 뜬다


Let's Encrypt + Certbot

그 전에
도메인 서버를 구입하고, 동적 IP 주소로 인터넷에 연결하고, 라우터를 설정해야한다.

letsencrypt.org
무료로 SSL 인증서를 발급하는 기관인데 certbot을 활용해서 설치하면 된다
💡90일동안만 유효하다

fullchain.pem, privkey.pem 파일 경로 기억해두기

Apache SSL Configuration

$ code /opt/homebrew/etc/httpd/httpd.conf
모듈 로드 및 httpd-ssl파일 포함시키기
LodModule socache_schmcb_module lib/httpd/modules/mod_socache_shmcb.so
LoadModule ssl_module lib/httpd/modules/mod_ssl.so
Include /usr/local/etc/httpd/extra/httpd-ssl.conf

$ code /opt/homebrew/etc/httpd/extra/httpd-ssl.conf
Listen 8443에서
Listen 443으로 변경

DocumentRoot "/Users/your_user/Sites" ServerName dev.grav.rocks:443

SSLCertificateFile "/usr/local/etc/certbot/certs/live/dev.grav.rocks/fullchain.pem
fullchain.pem 연결하기

SSLCerficateKeyFile "/usr/local/etc/certbot/certs/live/dev.grav.rocks/privkey.pem
privkey.pem 연결하기

$ sudo apachectl configtest
문법 확인

$ brew services stop httpd
$ brew services start httpd

Maintenance & Renewal

$ certbot renew
$ brew services restart httpd

매주 일요일 새벽3시에 크론 실행
$ (crontab -l 2>/dev/null; echo "0 3 * * 0 certbot renew --post-hook 'brew services restart httpd' > /dev/null 2>&1") | crontab -

$ crontab -l
확인가능


Self-Signed SSL

개발환경에서 ssl을 테스트하고 싶을 때 mkcert를 인증기관 삼아 환경 구축하기
$ brew install mkcert nss
nss는 firefoxrk 인증 권한 서버를 사용할 수 있게 해준다

$ mkcert -install
서버 설치

$ cd /usr/local/etc/httpd 원하는 경로로 가서
$ mkdir certs && cd certs 인증서 생성하기

$ mkcert [도메인주소]
$ mkcert localhost
로컬호스트를 서버로 설정한다
$ mkcert grav-admin.test
grav-admin.test를 서버로 설정한다

.pem파일과 -key.pem파일이 생성된다

SSLCertificateFile "/usr/local/etc/httpd/certs/grav-admin.test.pem"
SSLCertificateKeyFile "/usr/local/etc/httpd/certs/grav-admin.test-key.pem"

$ /usr/local/bin/httpd -t
문법 체크

$ brew services restart httpd

SSL in Apache Virtual Hosts

httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/Users/your_user/Sites/grav-admin"
    ServerName grav-admin.test
</VirtualHost> 얘는 이미 추가되어 있을 거고 아래를 추가해준다

<VirtualHost *:443>
    DocumentRoot "/Users/your_user/Sites/grav-admin"
    ServerName grav-admin.test
    SSLEngine on
    SSLCertificateFile "/usr/local/etc/httpd/certs/grav-admin.test.pem"
    SSLCertificateKeyFile "/usr/local/etc/httpd/certs/grav-admin.test-key.pem"
</VirtualHost>

$ /usr/local/bin/httpd -t
문법 체크

$ brew services restart httpd

회사에서 사용 중인 comodoSSL

https://www.comodossl.co.kr/certificate/ssl-installation-guides/Apache-Auto-CSR.aspx

인증서 적용하기


웹서버 재실행

웹서버 포트 및 동작 점검


코드에서 적용시킬 땐
http://로 써있는 내용을 https://로 링크를 수정
//naver.com 처럼 앞의 프로토콜을 제거

좋은 웹페이지 즐겨찾기