๐ก Linux์ JBoss WildFly์ Let's Encrypt Certificate ์ค์น
certbot-auto ์คํฌ๋ฆฝํธ ๋ค์ด๋ก๋
๋๋ ํ ๋ฆฌ๋ฅผ ํ ๋๋ ํ ๋ฆฌ๋ก ๋ณ๊ฒฝ
cd /home/orestis
์ํผ์ ์ ๋ก ์ธํฐ๋ท์์ certbot-auto ๋ค์ด๋ก๋
sudo wget https://dl.eff.org/certbot-auto
์ด ๋๋ ํ ๋ฆฌ์ ๋ํ ์ ์ฒด ์ฐ๊ธฐ ์ก์ธ์ค๋ฅผ ์ํ ๋ชจ๋ ๋ณ๊ฒฝ
sudo chmod a+x certbot-auto
certbot์ด ์ด์ ์ค์น๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ์ธ์ฆ์๋ฅผ ๊ฐฑ์ ํ๊ฑฐ๋ ์์ฑํ๋๋ก ์์ฒญํด์ผ ํฉ๋๋ค.
ํฌํธ 80์์ ์ด๋ฏธ ์คํ ์ค์ธ ๋ชจ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค๋ฅผ ์ค์งํฉ๋๋ค.
์์:
certbot-auto certonly --standalone --standalone-supported-challenges http-01 --agree-tos --rsa-key-size 4096 --renew-by-default --email [email protected] -d example.com -d www.example.com
์ค์ ์:
certbot-auto certonly --standalone --standalone-supported-challenges http-01 --agree-tos --rsa-key-size 4096 --renew-by-default --email [email protected] -d opendevops.dev -d www.opendevops.dev
๋ช ๋ น์ค ์ธ์๋ ๋ง์ง๋ง์ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
์ค์ ์ฐธ๊ณ ์ฌํญ:
- ์ถํํฉ๋๋ค! ์ธ์ฆ์ ๋ฐ ์ฒด์ธ์ด ๋ค์ ์์น์ ์ ์ฅ๋์์ต๋๋ค.
/etc/letsencrypt/live/*/fullchain.pem. ๊ทํ์ ์ธ์ฆ์๋
*์ ๋ง๋ฃ๋ฉ๋๋ค. ์ด๊ฒ์ ์ ๋ฒ์ ์ด๋ ์กฐ์ ๋ ๋ฒ์ ์ ์ป์ผ๋ ค๋ฉด
๋์ค์ certbot-auto๋ฅผ ๋ค์ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์๊ฒ
๋น๋ํ์์ผ๋ก *๋ชจ๋ ์ธ์ฆ์ ๊ฐฑ์ , ์คํ
"certbot-์๋ ๊ฐฑ์ "*
- Certbot์ด ๋ง์์ ๋์๋ฉด ๋ค์์ ํตํด ์ ํฌ ์์ ์ ์ง์ํด ์ฃผ์ญ์์ค.
ISRG์ ๊ธฐ๋ถ/Let's Encrypt: https://letsencrypt.org/donate
EFF์ ๊ธฐ๋ถ: https://eff.org/donate-le
๋ ธํธ:
Java ํ๊ฒฝ์์ ์์ ํ๋ ๊ฒฝ์ฐ Java ํค ์ ์ฅ์๋ ๊ฐ์ธ ํค๋ฅผ ์ ์ฅํ๋ ๊ณต์ ์ฅ์์ ๋๋ค. Java ๋ฐ์คํฌํ ๋๋ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์ผ๋ฐ์ ์ผ๋ก JKS์์ ํ์ํ ํค๋ฅผ ์ป์ ๊ฒ์ผ๋ก ์์ํ๋ฉฐ ์์ฒด Java ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์์ต๋๋ค. JKS๋ ์ธ๋ถ Java ํ๊ฒฝ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
PKCS#12 ํ์ผ(PFX)์ ๊ฐ์ธ ํค์ ์ธ์ฆ์๋ฅผ ์ ์ฅํ ์ ์๋ .p12 ๋๋ .pfx๋ผ๊ณ ๋ ํ๋ ํ์ผ ํ์์ ๋๋ค.
JBoss WildFly ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ๊ณต๊ฐ ํค์ ๊ฐ์ธ ํค๋ฅผ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Apache, Nginx ์๋ฒ๋ ๊ณต๊ฐ ํค์ ๊ฐ์ธ ํค๊ฐ ๋ณ๋๋ก ์ง์ ๋์ด ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก Java ๋์ ์ WildFly๋ ํค ์ ์ฅ์(.jks)์์ ์๋ํฉ๋๋ค. PEM ํ์ผ์ Java keytool์์ ์ฝ์ ์ ์๋ ํ์์ P12 ํ์ผ๋ก ๋ณํํด์ผ ํฉ๋๋ค.
OpenSSL ๋ณด์ ํดํท ์ฌ์ฉ:
์์:
openssl pkcs12 -export -in /etc/letsencrypt/live/YOURDOMAIN/fullchain.pem -inkey /etc/letsencrypt/live/YOURDOMAIN/privkey.pem -out KEYSTORENAME.p12 -name KEYSTOREALIAS
์ค์ ์:
YOURDOMAIN ๊ต์ฒด๋ ํค๋ฅผ ์์ฑํ๋ ๋๋ฉ์ธ ๊ฐ์ฒด์ ํด๋นํ๋ ํด๋์ด๋ฉฐ ์ด์ ๋จ๊ณ์์ ๋์ด๋ ์ฝ์ ์ถ๋ ฅ์ ์์์ต๋๋ค.
KEYSTORENAME์ ์์ฑ๋ ํ์ผ ์ด๋ฆ(.p12)์ ์ผ๋ถ๊ฐ ๋๊ณ ๊ตฌ์ฑ์ JBoss WildFly XML ๋ถ๋ถ์์ KEYSTOREALIAS๋ก ์ฌ์ฉ๋ฉ๋๋ค.
ENTER ๋จ์ถํค๋ฅผ ๋๋ฅด๋ฉด ์ ์ํธ ์๊ฒฉ ์ฆ๋ช ์ ์ ๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๊ณ ํ์ธ๋ฉ๋๋ค. ์ด ์ ๋น๋ฐ๋ฒํธ๋ ์ ์ ํ ํค ์ ์ฅ์๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
Java ํค ์ ์ฅ์(.jks) ์์ฑ
์์:
/usr/lib/jvm/jdk1.7.0_80/bin/keytool -importkeystore -deststorepass WILDFLY_NEW_STORE_PASS -destkeypass WILDFLY_NEW_KEY_PASS -destkeystore NEW_KEYSTORE_FILE.jks -srckeystore KEYSTORENAME.p12 -srcstoretype PKCS12 -srcstorepass PREVIOUSPASSWORD -alias KEYSTOREALIAS
์ค์ ์:
/usr/lib/jvm/jdk1.8.0_80/bin/keytool -importkeystore -deststorepass athens -destkeypass athens -destkeystore mycert.jks -srckeystore mycert.p12 -srcstoretype PKCS12 -srcstorepass athens -alias mycert
์ํผ์ ์ ๋ก JBoss WildFly ์๋ฒ ๊ตฌ์ฑ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ฌ mycert.jks ํ์ผ์ ๋ณต์ฌํฉ๋๋ค.
sudo cp mycert.jks /opt/wildfly/standalone/configuration/
WILDFLY_NEW_STORE_PASS: ํค ์ ์ฅ์ ์ํธ ์๊ฒฉ ์ฆ๋ช ์ ๋๋ค.
WILDFLY_NEW_KEY_PASS: ๋์ ํค ์ ์ฅ์ ์ํธ์ ๋๋ค.
NEW_KEYSTORE_FILE: ์ต์ข .jks ํ์ผ ์ด๋ฆ์ ๋๋ค.
standalone.xml ๊ตฌ์ฑ ํ์ผ๋ก ์ด๋ํ์ฌ ๊ท์น ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๊ณ ์ ์กํฉ๋๋ค.
์์:
<server-identities>
<ssl>
<keystore path="NEW_KEYSTORE_FILE.jks"
relative-to="jboss.server.config.dir"
keystore-password="WILDFLY_NEW_STORE_PASS"
alias="KEYSTOREALIAS"
key-password="WILDFLY_NEW_KEY_PASS"/>
</ssl>
</server-identities>
์ค์ ์:
<server-identities>
<ssl>
<keystore path="mycert.jks"
relative-to="jboss.server.config.dir"
keystore-password="athens"
alias="mycert"
key-password="athens"/>
</ssl>
</server-identities>
๋ง์ง๋ง์ผ๋ก ์คํ ๋ชจ๋์์ WildFly ์์ฉ ํ๋ก๊ทธ๋จ ์๋ฒ๋ฅผ ์์ํฉ๋๋ค.
.\standalone.sh -b 0.0.0.0
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ก Linux์ JBoss WildFly์ Let's Encrypt Certificate ์ค์น), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/orestispantazos/install-let-s-encrypt-certificate-on-jboss-wildfly-in-linux-27hmํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค