728x90
300x250

[GNU - 리눅스(Linux)] 우분투 20.04(18.04), 아파치 톰캣 9, OpenJDK 15, 16, OpenSSL 사설 자가서명

 

이번에 다뤄볼 주제는 우분투 20.04(18.04), 아파치 톰캣 9, OpenJDK 15, 16, OpenSSL 사설 자가서명까지 다뤄보고자 한다.


1. 설명서

요약 형태로 "설명서"를 작성하였다.

/*
파일명: 210610_ubuntu_20_04_self_signed_tomcat_9_ssl.txt
생성일자: 2021-06-10 목요일
작성자: 도도(Dodo), Apache License v2.0
비고: 
1. Ubuntu 18.04, Ubuntu 20.04
2. OpenJDK 15, OpenJDK 16
3. Tomcat9, Tomcat 10 서비스 생성까지
4. OpenSSL 사설 인증서 생성부터 자가 인증까지

*/
1. OpenJDK 15, 16

// 1.1. JRE, JDK 설치하기
# sudo apt-get install openjdk-16-jre
# sudo apt-get install openjdk-16-jdk

// 1.2. 자바 설치 경로 찾기
# /usr/lib/jvm/
# ls -al
java-16-openjdk-amd64

.........(중략)

// 1.3. profile 수정하기
# sudo vim /etc/profile

(중략)

  unset i
fi

# OpenJDK 16
JAVA_HOME=/usr/lib/jvm/java-16-openjdk-amd64
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

:wq

// 1.4. profile 반영하기
# source /etc/profile

// 1.5 자바 버전 확인하기
# java -version
2. 아파치 톰캣 9 설치하기
// 2.1. 내려받기
https://tomcat.apache.org/download-90.cgi

# /opt/
# wget https://mirror.navercorp.com/apache/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.tar.gz
# tar xvfz apache-tomcat-9.0.46.tar.gz
# mv apache-tomcat* tomcat9

// 2.2. 톰캣 권한 획득
# sudo chown -R tomcat: /opt/tomcat9

// 2.3. 쉘 소유권 획득
# sudo sh -c 'chmod +x /opt/tomcat9/bin/*.sh'

// 2.4. 서비스 생성하기
# sudo /etc/systemd/system/tomcat9.service

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-16-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headl>

Environment="CATALINA_BASE=/opt/tomcat9"
Environment="CATALINA_HOME=/opt/tomcat9"
Environment="CATALINA_PID=/opt/tomcat9/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

// 2.5. 시스템 데몬 서비스 재시작
# sudo systemctl daemon-reload

// 2.6. 시스템 서비스 등록
# sudo systemctl enable --now tomcat9

// 2.7. 시스템 서비스 상태
# sudo systemctl status tomcat9

// 2.8. 시스템 서비스 3가지 기능
# sudo systemctl start tomcat9
# sudo systemctl stop tomcat9
# sudo systemctl restart tomcat9

// 2.9. 방화벽 허용
# sudo ufw allow 8080
// 3. 수정 위치 (tar.gz 설치로 진행할 것)
   이유: apt-get install tomcat9은 servlet이 잘 동작하지 않음.

# vim /opt/tomcat9/conf/server.xml 

// 3.1. 개인키 생성
# openssl genrsa -des3 -out keyname.key.origin 2048

// 3.2. 인증 요청서 (CSR) 생성
# openssl req -new -key keyname.key.origin -out csrname.csr

[비고]
callenge password, optional company name은 optional하므로 생략

// 3.3. 개인키 비밀번호 제거
# openssl rsa -in keyname.key.origin -out keyname.key

// 3.4. 인증서 생성(CRT)
# openssl x509 -req -days 3650 -in csrname.csr -signkey keyname.key -out crtname.crt

// 3.5. 톰캣에서 사용할 수 있는 키스토어 파일 생성
# openssl pkcs12 -export -in crtname.crt -inkey keyname.key -out keyname.p12 -name tomcat

[비고]
지원형식: jks, pkcs12 등 지원함.

// 3.6. 톰캣 설정 변경
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" SSLEnabled="true" maxThreads="200"
scheme="https" secure="true"
keystoreFile="p12 파일이 위치한 경로"
keystorePass="키스토어 생성시 입력한 패스워드"
keystoreType="pkcs12"
clientAuth="false"
sslProtocol="TLS" />

예:) p12 파일이 위치한 경로
/ca/localhost/localhost.p12

톰캣 디렉터리 내 conf/server.xml 파일을 수정한다.

// 3.7. 인증서 디렉터리, 파일 소유권 권한
# cd /ca/localhost
# chown -R tomcat:tomcat *

// 3.8. 서비스 재시작
# sudo systemctl restart tomcat9
# sudo service tomcat9 restart (같은 표현)
/*
Copyright 2021. 도도(Dodo), 우분투 20.04, 자가서명, 톰캣 9, SSL, OpenJDK 15, OpenJDK 16 인증서
                        (Ubuntu 20.04, self-signed, Tomcat 9, SSL, OpenJDK 15, OpenJDK 16 certificates)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

*/

2. 첨부(Attachments)

210610_ubuntu_20_04_self_signed_tomcat_9_ssl_openjdk_15_16.zip
0.01MB

[Apache License v2.0을 적용받는다.]


3. 맺음글(Conclusion)

우분투 20.04(18.04)에서 아파치 톰캣 9, OpenJDK 15, 16, OpenSSL 사설 인증서 생성까지 다뤄보았다.


4. 참고자료(References)

1. 

반응형

+ Recent posts