Aller au contenu principal

25. Work With SSL Certificates


tags:

  • linux
  • ssl
  • openssl
  • certificates
  • lfcs

โฌ… Go to Home

25. Work With SSL Certificates

๋ช…๋ น์–ดโ€‹

req โ€” CSR (์ธ์ฆ์„œ ์„œ๋ช… ์š”์ฒญ) ์ƒ์„ฑโ€‹

openssl req -newkey rsa:2048 -keyout key.pem -out req.pem
ํ”Œ๋ž˜๊ทธ์„ค๋ช…
-newkey rsa:2048RSA 2048๋น„ํŠธ ๊ฐœ์ธํ‚ค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑ
-keyout key.pem๊ฐœ์ธํ‚ค๋ฅผ key.pem์— ์ €์žฅ
-out req.pemCSR์„ req.pem์— ์ €์žฅ

x509 โ€” ์ž์ฒด ์„œ๋ช… ์ธ์ฆ์„œ ์ƒ์„ฑโ€‹

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out req.pem
ํ”Œ๋ž˜๊ทธ์„ค๋ช…
-x509CSR ๋Œ€์‹  ์ž์ฒด ์„œ๋ช… ์ธ์ฆ์„œ๋ฅผ ์ถœ๋ ฅ
-newkey rsa:2048RSA 2048๋น„ํŠธ ๊ฐœ์ธํ‚ค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑ
-keyout key.pem๊ฐœ์ธํ‚ค๋ฅผ key.pem์— ์ €์žฅ
-out req.pem์ธ์ฆ์„œ๋ฅผ req.pem์— ์ €์žฅ
astuce

-days 365 ๋กœ ์œ ํšจ๊ธฐ๊ฐ„ ์„ค์ •

openssl req -x509 -newkey rsa:4096 -keyout myprivate.key -out mycertificate.crt -noenc
์˜ต์…˜์„ค๋ช…
-newkey rsa:4096RSA 4096๋น„ํŠธ ํ‚ค ์ƒ์„ฑ (2048๋ณด๋‹ค ๊ฐ•๋ ฅ)
-keyout myprivate.key๊ฐœ์ธํ‚ค๋ฅผ myprivate.key์— ์ €์žฅ
-out mycertificate.crt์ธ์ฆ์„œ๋ฅผ mycertificate.crt์— ์ €์žฅ
-noenc๊ฐœ์ธํ‚ค์— ํŒจ์Šคํ”„๋ ˆ์ด์ฆˆ ์•”ํ˜ธํ™” ์ƒ๋žต

EXAMPLES (man openssl-req)โ€‹

man ํŽ˜์ด์ง€์—์„œ ์˜ˆ์ œ ์„น์…˜์œผ๋กœ ๋ฐ”๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•
man openssl-req

์—ด๋ฆฐ ํ›„ /EXAMPLE ์ž…๋ ฅ โ†’ Enter โ†’ ์˜ˆ์ œ ์„น์…˜์œผ๋กœ ๋ฐ”๋กœ ์ด๋™

  • / โ€” man ํŽ˜์ด์ง€ ๋‚ด ๊ฒ€์ƒ‰
  • n โ€” ๋‹ค์Œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ด๋™
  • q โ€” ์ข…๋ฃŒ
# ์ธ์ฆ์„œ ์š”์ฒญ ํ™•์ธ ๋ฐ ๊ฒ€์ฆ
openssl req -in req.pem -text -verify -noout

# ๊ฐœ์ธํ‚ค๋ฅผ ๋จผ์ € ๋งŒ๋“ค๊ณ , ๊ทธ ํ‚ค๋กœ CSR ์ƒ์„ฑ
openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out req.pem

# ์œ„์™€ ๋™์ผํ•˜์ง€๋งŒ req ํ•˜๋‚˜๋กœ ํ‚ค+CSR ๋™์‹œ ์ƒ์„ฑ
openssl req -newkey rsa:2048 -keyout key.pem -out req.pem

# ์ž์ฒด ์„œ๋ช… ๋ฃจํŠธ ์ธ์ฆ์„œ ์ƒ์„ฑ
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out req.pem

# ์„œ๋ธŒ์ ํŠธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•ด ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ํ”„๋กฌํ”„ํŠธ ์—†์ด ์ƒ์„ฑ
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out req.pem \
-days 365 -noenc \
-subj "/C=FR/ST=Paris/L=Paris/O=MyOrg/CN=example.com"

# ์ƒ์„ฑ๋œ ์ธ์ฆ์„œ ๋‚ด์šฉ ํ™•์ธ
openssl x509 -in req.pem -text -noout

# ์‹ค์ œ ์ธ์ฆ์„œ ํŒŒ์ผ๋กœ ๋‚ด์šฉ ํ™•์ธ
openssl x509 -in mycertificate.crt -text

ํ•ต์‹ฌ ๊ฐœ๋…โ€‹

  • CSR (Certificate Signing Request) โ€” CA์— ์ œ์ถœํ•ด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•œ ์š”์ฒญ ํŒŒ์ผ
  • ์ž์ฒด ์„œ๋ช… (-x509) โ€” CA ์—†์ด ์ž์‹ ์˜ ํ‚ค๋กœ ์ง์ ‘ ์„œ๋ช…; ๊ฐœ๋ฐœ/๋‚ด๋ถ€ ํ™˜๊ฒฝ์— ์ ํ•ฉ
  • key.pem โ€” ๊ฐœ์ธํ‚ค (์ ˆ๋Œ€ ์™ธ๋ถ€ ์œ ์ถœ ๊ธˆ์ง€)
  • req.pem โ€” ์‚ฌ์šฉํ•œ ๋ช…๋ น์— ๋”ฐ๋ผ CSR ๋˜๋Š” ์ธ์ฆ์„œ

.crt vs req.pemโ€‹

.crtreq.pem
๋‚ด์šฉ์„œ๋ช…๋œ ์ธ์ฆ์„œ (Certificate)CSR ๋˜๋Š” ์ธ์ฆ์„œ
์šฉ๋„์„œ๋ฒ„์— ๋ฐฐํฌํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ตœ์ข… ์ธ์ฆ์„œCA์— ์ œ์ถœํ•˜๊ฑฐ๋‚˜ ์ž„์‹œ ์ถœ๋ ฅ ํŒŒ์ผ
ํ˜•์‹PEM ํ˜•์‹ (๋‚ด์šฉ์€ ๋™์ผ)PEM ํ˜•์‹ (๋‚ด์šฉ์€ ๋™์ผ)
๊ด€๋ก€.crt = ์ธ์ฆ์„œ์ž„์„ ๋ช…ํ™•ํžˆ ํ‘œํ˜„.pem = ํ˜•์‹๋งŒ ๋‚˜ํƒ€๋ƒ„, ๋‚ด์šฉ์€ ๋ถˆ๋ถ„๋ช…
remarque

ํ™•์žฅ์ž๋Š” ๋‹จ์ˆœํ•œ ๊ด€๋ก€(convention) ์ผ ๋ฟ, ์‹ค์ œ ํŒŒ์ผ ํ˜•์‹(PEM)์€ ๋™์ผํ•˜๋‹ค. -x509 ์‚ฌ์šฉ ์‹œ โ†’ ์ธ์ฆ์„œ์ด๋ฏ€๋กœ .crt ๊ถŒ์žฅ -x509 ์—†์ด ์‚ฌ์šฉ ์‹œ โ†’ CSR์ด๋ฏ€๋กœ .csr ๋˜๋Š” req.pem ์‚ฌ์šฉ


์œ ํšจ๊ธฐ๊ฐ„ (Expiration)โ€‹

attention

์ด๋ฏธ ์ƒ์„ฑ๋œ ์ธ์ฆ์„œ์˜ ์œ ํšจ๊ธฐ๊ฐ„์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ํ•˜๋‹ค. ์œ ํšจ๊ธฐ๊ฐ„์€ ์„œ๋ช…๋œ ๋ฐ์ดํ„ฐ์— ํฌํ•จ๋˜๋ฏ€๋กœ, ์ˆ˜์ •ํ•˜๋ฉด ์„œ๋ช…์ด ๋ฌดํšจ๊ฐ€ ๋œ๋‹ค. ๋ฐ˜๋“œ์‹œ ์žฌ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

# ๊ธฐ์กด ์ธ์ฆ์„œ๋ฅผ 365์ผ ์œ ํšจ๊ธฐ๊ฐ„์œผ๋กœ ์žฌ์ƒ์„ฑ (๋ฎ์–ด์“ฐ๊ธฐ)
openssl req -x509 -newkey rsa:4096 -keyout myprivate.key -out kodekloud.crt -noenc -days 365
# ์œ ํšจ๊ธฐ๊ฐ„ ํ™•์ธ
openssl x509 -in kodekloud.crt -text -noout | grep "Not After"