[배포] HTTPS - CORS 에러 해결

공부기록·2024년 6월 17일
0
post-thumbnail

저번에 시달리면 비공개로 연결되어있지 않습니다.

Swagger도 잘 돌아가~ 프론트랑도 연결 잘 돼~ 하고 가볍게 넘어갔다.
사실 지난주 할 거 없어서 https 문제 해결하려고 한 3시간 썼는데 실패해서 의지가 껶여있었다. 아 내가 해결할 수 없는 문제구나. 근데 문제는 피할 수 없었다.

❓소셜 로그인 도중 다음과 같은 에러가 발생했다.

결국 스노우볼이 여기까지 굴러오는구나...
SS
L 인증서가 유효하지 않아서 소셜로그인 중의 CORS 에러가 발생하였다. 피할 수 없으니 처음부터 되돌아갔다.
참고로 같은 도메인에 SSL 인증서 5번 설치하면 더이상 설치안해준다. 나도 알고싶지않았다.


존재하는 과거 망령들 지우기

/etc/letsencrypt/live/도메인주소에 존재하는 파일들 지우기

# SSL 인증서 확인
$ certbot certificates
$ certbot remove {인증서이름}

# certbot 제거 - 나는 snapd로 설치, 혹시모르니 snapd도 제거
$ sudo snap remove certbot
$ sudo apt remove snapd
$ sudo apt purge snapd
$ sudo apt autoremove

하고 처음부터 다시 설치했다. 사실 진실을 안다면 이렇게까지 안해도 됐다.


진실이란?

먼저 스프링 프로젝트에서 https 이용을 위해서는 PKCS12 타입의 파일이 필요하다.

원래 사용하던 코드는 아래와 같다.

$ keytool -genkey -alias hi -keyalg RSA -keysize 2048 -storetype pkcs12 -v -validity 10000 -keystore keystore.p12

먼저, 내가 뜨던 오류는 ERR_AUTHORITY_NOT_VALID이다. 그래서 HTTP를 확인하면 내가 생성할 때 입력한 내 이름, 지역 등이 적혀있는 것을 확인했다. 생각해보면 처음 배포할 때는 이런 문제가 발생안했는데.. 그리고 좀 더 생각해보면 내 이름같은 거 작성 안했다...

💫keystore.p12가 문제다!

그래서 얼른 다른 방식으로 만들어보았다.

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name name -CAfile chain.pem -caname root

이렇게 하고 프로젝트 파일에 카피하고 실행하니까...!

성공!

최종 발표 전날에라도 마무리 할 수 있어서 속이 시원하다. 그동안 어쩔 수 없는 문제인 줄 알았는데.
두 가지 방식의 차이는 다음에 추가로 작성해야겠다.

0개의 댓글

관련 채용 정보