개발할 때, O-Auth Login으로 Apple을 이용해서 로그인을 진행하려고 했습니다.
하지만 Apple 보안정책 상, Redirect URL이 HTTPS가 적용되어야 해서, 도메인을 발급받고 SSL 인증서를 적용한 서버가 있어야 했습니다.
Apple Login이 잘 되는지 확인하기 위해서 해야하는 절차가 너무 복잡해 방법을 찾아보던 도중, Local에서도 간단하게 Apple Login을 테스트해볼 수 있는 방법을 찾아서 공유하고자 합니다.
Apple Developer Key 설정은 설명에서 제외
Sign in with Apple 기능을 구현하려면 먼저 Apple의 개발자 계정이 있어야 합니다.
그리고 App ID, Service ID, Key를 등록해두어야 합니다.
이렇게 Apple 설정하는 방법은 인터넷에 잘 나와있으므로 이번 설명에서 제외하겠습니다.
구현 Code와 O-AUTH Flow는 설명에서 제외
목적에 맞게 작성하기 위해 O-Auth를 구현하기 위한 실제 코드와 Flow는 이번 내용에 포함하지 않았습니다.
특정 ip를 domain에 mapping할때 사용
사용 이유
SSL/TLS 테스트: HTTPS 인증서를 도메인 기반으로 발급받아 로컬 테스트를 진행할 때 필요.
사용법
/etc/hosts
파일을 열고, 아래와 같은 형식으로 추가함
127.0.0.1 example.local
example.local
이라는 도메인이 127.0.0.1
로 매핑돼서, 브라우저에서 example.local
을 입력하면 127.0.0.1
로 연결로컬 개발 환경에서 신뢰할 수 있는 SSL/TLS 인증서를 손쉽게 생성할 수 있는 도구
보통 웹 개발자들이 HTTPS 설정이 필요한 로컬 서버에서 안전한 연결을 테스트할 때 사용함.
사용 이유
특징
사용법
brew install mkcert # mkcert install
mkcert -install # 로컬 CA 설치
mkcert example.com # 특정 도메인용 인증서 발급
mkcert localhost 127.0.0.1 ::1 # 로컬 서버용 인증서
Host mapping
sudo vi /etc/hosts
에서 localhost 대신 demo.apple-login-test.app 을 사용.
...
#127.0.0.1 localhost
127.0.0.1 demo.apple-login-test.app
...
mkcert 적용
프로젝트 root 경로에서 도메인 인증서 발급
brew install mkcert # mkcert install
mkcert -install # 로컬 CA 설치
mkcert demo.apple-login-test.app. # 특정 도메인용 인증서 발급
해당 인증서를 이용해서 실행하고 테스트
poetry run uvicorn config.asgi:application --host demo.apple-login-test.app --port 8443 --ssl-keyfile=demo.apple-login-test.app-key.pem --ssl-certfile=demo.apple-login-test.app.pem
/etc/hosts 파일 변경은 local dns 설정에서 아주 중요한 부분입니다.
테스트가 끝나면 꼭 원래대로 돌려놓아야 합니다.