개발놀이터

CAS 인증서버 구축하기 (2) : CAS 서버에 HTTPS 적용하기 본문

Spring/Spring Security

CAS 인증서버 구축하기 (2) : CAS 서버에 HTTPS 적용하기

마늘냄새폴폴 2024. 2. 25. 22:22

이전 포스팅과 이어집니다. 

 

바로 HTTPS를 위해 thekeystore를 만들어주도록 하죠. 

 

우리는 먼저 /etc/cas 폴더로 이동해야합니다. 이동해주시구요. 

 

이제 thekeystore를 만들어봅시다. 

 

$ keytool -genkey -keyalg RSA -alias thekeystore -keystore thekeystore -storepass changeit -validity 360 -keysize 2048

 

하지만 이렇게 쓰면 에러가 날겁니다. 우리가 아직 openjdk를 설치하지 않았거든요 ㅎㅎ..

 

CAS overlay template은 최신 버전인 7.0이 JDK 21을 사용하고 6.6버전까지는 JDK 11을 사용합니다. 때문에 저희는 JDK 11을 설치해주도록 합시다. 

 

$ sudo apt-get install open-jdk-11

 

자 이제 설치가 완료되었으니 다시 keytool 명령어를 실행해줍니다. 

 

중요!!

 

이때 생성하는 thekeystore는 도메인을 입력해야합니다! 도메인이 없고 IP 주소만 있다면 IP주소를 적어주셔야합니다. 

 

이름과 성을 입력하시오
 [Unknown] : 도메인 or IP주소
 
 조직 단위 이름을 입력하십시오
  [Unknown] : 도메인 or IP주소
  
 조직 이름을 입력하십시오
  [Unknown] : 도메인 or IP주소
 
 구/군/시 이름을 입력하십시오
  [Unknown] : Seoul
  
 시/도 이름을 입력하십시오
  [Unknown] : Mapo
  
 이 조직의 두 자리 국가 코드를 입력하십시오
  [Unknown] : 82
 
 CN=도메인 or IP주소, OU=도메인 or IP주소, O=도메인 or IP주소, L=Seoul, ST=Mapo, C=82 가 맞습니까?
  [No} : Y
  
  thekeystore에 대한 키 비밀번호를 입력하십시오. 
  changeit

 

다음 단계는 생성된 저장소를 클라이언트 응용 프로그램에서 사용할 수 있도록 .crt 형식으로 export하는 것입니다. 

 

$ keytool -export -alias thekeystore -file thekeystore.crt -keystore thekeystore

키 저장소 비밀번호 입력 : changeit

 

이제 thekeystore.crt를 java cacerts 키 저장소로 import 해야합니다. 

 

$ keytool -import -alias thekeystore -storepass changeit -file thekeystore.crt -keystore "/usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts"

 

 

이런식으로 뜨면 성공입니다. 

 

그리고 우리는 프로젝트로 다시 돌아가서 /src/main/resources/application.yml 에 해당 내용을 추가해줍니다. 

 

server:
	context-path: /cas
    port: 8443
    ssl:
    	key-store: classpath:/etc/cas/thekeystore  // 이게 안되면 file:/etc/cas/thekeystore로 하세요
        key-store-password: changeit
        key-password: changeit

 

그리고 도메인 or IP:8443/cas/login 으로 들어가보면?

 

 

위에보시면 https가 적용 안된것 같지만 사실 된겁니다. 

 

자 여기까지 CAS 서버에 HTTPS를 적용해보았습니다. 

 

다음엔 사용자 등록하는 과정을 진행해보겠습니다!