WebSphere Liberty์
securityUtility๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด ์๋ช ๋(Self-Signed) SSL ์ธ์ฆ์๋ฅผ ์์ฑํ๊ณ , ๋ณด์์ฑ์ ๋์ด๊ธฐ ์ํด Keystore ๋น๋ฐ๋ฒํธ๋ฅผ AES๋ก ์ํธํํ์ฌ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํฉ๋๋ค.
0. ๋ฐฐ๊ฒฝ ๋ฐ ์๋๋ฆฌ์ค (Context)
Liberty ์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ๋ฐ ํธ์๋ฅผ ์ํด SSL ์ค์ ์ ์๋ํํ์ง๋ง, ์ด์ ํ๊ฒฝ์์๋ ๋ช
์์ ์ธ ์ธ์ฆ์ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ๋ณด์์ด ํ์์ ์
๋๋ค. securityUtility๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ์ฆ์ ์์ฑ๊ณผ ๋น๋ฐ๋ฒํธ ์ํธํ(Encoding)๋ฅผ ๋์์ ์ํํ ์ ์์ต๋๋ค.
Test Environment
- Middleware: WebSphere Liberty Profile (WLP)
- Server Name: s11, s12
1. SSL ์ธ์ฆ์ ์์ฑ ๋ฐ ์ํธํ (Create Certificate)
securityUtility createSSLCertificate ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํค์คํ ์ด(PKCS12)๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ --passwordEncoding=aes ์ต์
์ ์ฌ์ฉํ์ฌ ์ค์ ํ์ผ์ ๋ค์ด๊ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํฉ๋๋ค.
๋ช ๋ น์ด ๊ตฌ๋ฌธ
# ๊ตฌ๋ฌธ: securityUtility createSSLCertificate --server=[์๋ฒ๋ช
] --password=[ํคํจ์ค์๋] --validity=[์ ํจ๊ธฐ๊ฐ์ผ์] --passwordEncoding=aes --passwordKey=[์ํธํํค]
cd $WLP_HOME/bin
./securityUtility createSSLCertificate --server=s11 --password=passw0rd --validity=7300 --passwordEncoding=aes --passwordKey=passw0rd
์คํ ๊ฒฐ๊ณผ
ํค ์ ์ฅ์ /sw/was/WebSphere/wlp/usr/servers/s11/resources/security/key.p12์(๋ฅผ) ์์ฑํ๋ ์ค์
๋๋ค.
์๋ฒ s11์ ๋ํ SSL ์ธ์ฆ์๋ฅผ ์์ฑํ์ต๋๋ค.
์ด ์ธ์ฆ์๋ CN=testwas11,OU=s11์(๋ฅผ) ์ฌ์ฉํ์ฌ SubjectDN์ผ๋ก ์์ฑ๋์์ต๋๋ค.
usr/servers/[์๋ฒ๋ช
]/resources/security/ ๊ฒฝ๋ก์ ์ ์ฅ๋ฉ๋๋ค.
2. ์๋ฒ ์ค์ ์ ์ฉ (server.xml)
์์์ ์์ฑ๋ ์ธ์ฆ์๋ฅผ ์๋ฒ๊ฐ ์ฌ์ฉํ๋๋ก server.xml์ ์์ ํฉ๋๋ค. ์ด๋ ๋น๋ฐ๋ฒํธ ๋ถ๋ถ์ {aes}... ๋ก ์์ํ๋ ์ํธํ๋ ๋ฌธ์์ด์ ์
๋ ฅํด์ผ ํฉ๋๋ค.
<server description="SSL Server">
<!-- 1. SSL ๊ธฐ๋ฅ ํ์ฑํ -->
<featureManager>
<feature>transportSecurity-1.0</feature>
</featureManager>
<!-- 2. Keystore ์ ์ (๋น๋ฐ๋ฒํธ๋ ์ํธํ๋ ๊ฐ ์ฌ์ฉ) -->
<keyStore id="defaultKeyStore"
location="key.p12"
password="{aes}AJS+VEek/Fgo/zp46z8cuIUMTbnMM7sJVmPPbT49n4s6" />
</server>
3. ์ํธํ ํค ๋ฑ๋ก (bootstrap.properties)
server.xml์ ์ ํ {aes} ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ฒ๊ฐ ๋ณตํธํํ๋ ค๋ฉด, ์ํธํํ ๋ ์ฌ์ฉํ๋ Key๋ฅผ ์๋ฒ์ ์๋ ค์ฃผ์ด์ผ ํฉ๋๋ค. ์ด ์ค์ ์ bootstrap.properties ํ์ผ์ ์ ์ฅํฉ๋๋ค.
- ํ์ผ ์์น:
usr/servers/[์๋ฒ๋ช ]/bootstrap.properties
# securityUtility ์คํ ์ --passwordKey ์ต์
์ ๋ฃ์๋ ๊ฐ
wlp.password.encryption.key=passw0rd
CWWKS1704E: ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณตํธํํ ์ ์์ต๋๋ค. ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
4. ์ธ์ฆ์ ๊ฒ์ฆ (Verification)
์์ฑ๋ ํค์คํ ์ด ํ์ผ์ด ์ ์์ ์ธ์ง, ์ ํจ๊ธฐ๊ฐ์ ๋ง๋์ง ํ์ธํ๊ธฐ ์ํด JDK์ ํฌํจ๋ keytool ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ฒ์ฆ ๋ช ๋ น์ด
# keytool -list -v -keystore [ํ์ผ๊ฒฝ๋ก] -storetype PKCS12 -storepass [๋น๋ฐ๋ฒํธ]
./keytool -list -v -keystore /sw/was/WebSphere/wlp/usr/servers/s12/resources/security/key.p12 -storetype PKCS12 -storepass passw0rd
์ถ๋ ฅ ๊ฒฐ๊ณผ ๋ถ์
ํค ์ ์ฅ์ ์ ํ: PKCS12
ํค ์ ์ฅ์ ์ ๊ณต์: SUN
๋ณ์นญ ์ด๋ฆ: default
์์ฑ ๋ ์ง: 2024. 6. 12.
ํญ๋ชฉ ์ ํ: PrivateKeyEntry
์ธ์ฆ์ ์ฒด์ธ ๊ธธ์ด: 2
# ์ ํจ๊ธฐ๊ฐ ํ์ธ
์ ํฉํ ์์ ๋ ์ง: Wed Jun 12 16:47:57 KST 2024
์ข
๋ฃ ๋ ์ง: Tue Jun 07 16:47:57 KST 2044 (์ฝ 20๋
)
# ์์ ์ ๋ฐ ์๋ช
์๊ณ ๋ฆฌ์ฆ ํ์ธ
์์ ์: CN=testwas11, OU=s12, O=ibm, C=us
์๋ช
์๊ณ ๋ฆฌ์ฆ ์ด๋ฆ: SHA256withRSA
์ฃผ์ฒด ๊ณต์ฉ ํค ์๊ณ ๋ฆฌ์ฆ: 2048๋นํธ RSA ํค
Next Step:
์์ฒด ์๋ช
์ธ์ฆ์(Self-Signed)๋ ๋ธ๋ผ์ฐ์ ์์ ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํ๋ฏ๋ก, ์ด์ ํ๊ฒฝ์์๋ CSR์ ์์ฑํ์ฌ ๊ณต์ธ ์ธ์ฆ๊ธฐ๊ด(CA)์ ์๋ช
์ ๋ฐ์ ํ keytool -import ๋ช
๋ น์ด๋ก ๊ต์ฒดํด์ผ ํฉ๋๋ค.