반응형
* 도메인은 이미 등록이 되어있고 기본 설정이 되어있다는 전제
* Ubuntu 20.04
* OracleCloud 로 서버 구축
* 원본서버란 자신이 구축해놓은 Linux 서버 ( SSH로 접근하는 )
* MobaXterm 사용
* Tomcat9.0.44
클라우드 플레어에 로그인 후 원본 인증서를 저장하고자 하는 서버의 도메인으로 접근
상단 메뉴바중에서 SSL/TLS 를 클릭
빨간색 네모박스가 쳐져있는 전체(엄격) 으로 암호화 모드를 변경하고, 주황색 네모박스가 쳐져있는 원본 서버메뉴를 클릭
참고)
* 끄기(안전하지 않음) : SSL 적용 X
* 가변 : 원본서버에는 SSL 적용X, 클라우드플레어가 클라우드플레어와 브라우저사이를 암호화해준다. 쉽게 말해서 난 아무것도 안하고 사용자가 접근 시 클라우드플레어가 알아서 https로 접근할 수 있게 해줌
* 전체 : 원본서버에도 SSL을 적용했고, 클라우드플레어에서도 암호화를 적용해주지만 자체서명 인증서여도 굳이 검사하지 않음.
* 전체(엄격) : 원본서버에서도 SSL을 적용했고, 클라우드플레어에서도 암호화를 적용해주며 자체서명 인증서는 사용하지 못하고 Cloudflare Origin CA SSL 혹은 인증기관에서 구매한 인증서만 사용 가능.
자세한 설명은 아래 링크 참고
인증서 생성을 클릭
설정은 따로 건드리지 않고 생성을 클릭, 호스트 이름은 필요하면 수정
키 형식에는 PEM, PKCS#7, DER 이 있는데 귀찮으니 그냥 PEM 으로 발급받는다.
* 개인 키는 최초 발급받을 경우에만 확인할 수 있으니 절대 까먹지 말고 저장해둔다.
* 그리고 재 접근시 개인 키를 볼 수 없으므로 이 상태에서 멈추고 Ubuntu 에서 인증서를 설치한다.
텍스트에디터를 사용해 파일을 저장, 메모장도 가능
* 공백이나 줄바꿈이 들어가지 않도록 딱 붙여서 수정한다.
아래처럼 파일명을 바꿔서 pem으로 저장
MobaXterm 으로 원본 서버에 접속하여 자신이 원하는 폴더에 pem 파일을 업로드
openssl이 깔려있지 않으면 yum install openssl* 또는 apt install openssl* 로 설치
ubuntu@test:~$ sudo -i /*sudo 권한*/
root@test:~# cd /ubuntu/home/ /*디렉토리 이동*/
root@test:/home/ubuntu# vi 파일명.pem /*공백 및 줄바꿈이 있는 지 확인*/
root@test:/home/ubuntu# openssl pkcs12 -export -out 파일명.p12 -in 파일명.pem /*pem인증서를 pkcs12인증서로 내보내기*/
Enter Export Password: /*비밀번호 입력*/
Verifying - Enter Export Password: /*비밀번호 재입력*/
root@test:/home/ubuntu# ls /*제대로 만들어졌는지 파일리스트 확인*/
파일명.p12 파일명.pem
root@test:/home/ubuntu# keytool -importkeystore -srckeystore 파일명.p12 -srcstoretype pkcs12 -destkeystore 파일명.jks -deststoretype jks /*pkcs12인증서를 jks로*/
Importing keystore 파일명.p12 to 파일명.jks...
Enter destination keystore password:
Re-enter new password: /*비밀번호 입력*/
Enter source keystore password: /*비밀번호 재입력*/
Entry for alias 1 successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore 파일명.jks -destkeystore 파일명.jks -deststoretype pkcs12".
root@test:/home/ubuntu# keytool -list -keystore 파일명.jks
Enter keystore password:
Keystore type: jks
Keystore provider: SUN
Your keystore contains 1 entry
1, Apr 28, 2021, PrivateKeyEntry,
Certificate fingerprint (SHA1): /*코드값나옴*/
Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore 파일명.jks -destkeystore 파일명.jks -deststoretype pkcs12".
root@test:/home/ubuntu# ls /*jks파일 잘 만들어졌는지 파일리스트 확인*/
파일명.jks 파일명.p12 파일명.pem
root@test:/home/ubuntu# rm -rf 파일명.p* /*jks파일 제외하고 pem, p12파일 제거*/
root@test:/home/ubuntu# ls /*jks파일 제외하고 잘 지워졌는지 확인*/
파일명.jks
root@test:/home/ubuntu# keytool -list -v -keystore 파일명.jks /*인증서내용 세부확인*/
Enter keystore password: /*비밀번호 입력*/
Keystore type: jks
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: 1 /*별칭이름, 기억해두기*/
Creation date: Apr 28, 2021
Entry type: PrivateKeyEntry
Certificate chain length: 1
/*내용 길어서 생략*/
*******************************************
*******************************************
tomcat이 설치된 폴더로 이동 후 conf/server.xml 파일의 https를 아래와 같이 수정
<Connector port="443" maxHttpHeaderSize="8192" maxThreads="100"
minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
SSLEnabled="true" clientAuth="false"
sslProtocol="TLS" keyAlias="1" /*keyAlias에 10번에서 기억해뒀던 별칭 입력*/
keystoreFile="/home/ubuntu/파일명.jks"
keystorePass="비밀번호"/>
톰캣 재시작