Apple Oauth를 위한 Localhost Https 설정

Rookedsysc·2024년 5월 4일
0
post-thumbnail

개요

Apple Oauth를 테스트하기 위해서는 Service IDs에 호스트 주소를 등록해야 한다. 만약에 등록되지 않은 주소로 접속할려고 한다면 아래와 같이 Invalid Request에러가 발생한다.

Service IDs에 도메인을 등록해야 한다는 것을 알았으니 등록할 도메인의 규칙을 알아보자면 다음과 같다.

  1. domain 주소와 subdomain 주소가 필요하다. (localhost는 사용할 수 없다.)
  2. https로 연결되어 있어야 한다.

그러면 원격환경에서 개발을 하면되지 않냐? 라고 질문할 수도 있지만 이렇게 할 때는 디버깅의 어려움이 발생할 수 있다.

hosts 파일 변경

hosts 파일은 쉽게 말하자면 dns 같은건데 ip 도메인 주소와 운영체제 상에서 맵핑 시켜놓은 파일이다.

sudo vi /private/etc/hosts

위 명령어로 hosts 파일을 열고 주석 처리된 곳외에 아무것에다가 localhost.com과 127.0.0.1을 맵핑시켰다. (원한다면 다른 주소로 해도 된다.)

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost.com
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost

그리고 내가 OAuth를 테스트하기 위해 틀어놓은 로컬 웹 페이지를 127.0.0.1이나 localhost가 아닌 localhost.com으로 접근해서 정상적으로 접근할 수 있음을 확인한다.

minica로 https 설치

  1. minica 설치
brew install minica
  1. minica로 인증서 발급
minica -domains localhost.com -ip-addresses 127.0.0.1
  1. .p12 파일 생성

아까 인증서를 발급받은 폴더에 localhost.com 폴더가 생겼을텐데 그 폴더에 들어가서 작업해줘야 한다.

cd localhost.com
openssl pkcs12 -export -in cert.pem -inkey key.pem -out localhost.p12 -name localhost -CAfile minica.pem -caname minica
  1. Spring Boot Tomcat Https 설정

그리고 생성된 localhost.p12 파일을 Spring Boot Project의 resource 파일에 넣고 application.yaml 파일을 아래와 같이 설정한다.

server:
  ssl:
    key-store: classpath:localhost.p12
    key-store-type: PKCS12
    key-store-password: password

성공🎉

0개의 댓글