RSA ์ฉ SSL ์ธ์ฆ์๋ฅผ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ณด์
๋จผ์ ์ต์์ ์ธ์ฆ์์ธ RootCA ์ธ์ฆ์๋ฅผ ๋จผ์ ๋ง๋ค์ด์ผ ํ๋ค.
์ต์์ ์ธ์ฆ์๋ Self Signed ์ธ์ฆ์ ์ด๋ค.
์ฆ ์์ ์ ๊ฐ์ธํค๋ก ์๋ช
ํ ์ธ์ฆ์๊ฐ Self Signed ์ธ์ฆ์ ์ด๋ค.
์ฌ์ค ์์ฒด์ ์ผ๋ก ๋ง๋ ์ธ์ฆ์๋ ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ์ ๋ฑ๋ก์ด ๋์ด ์์ง ์์ ๊ฒฝ๊ณ ๋ฅผ ๋ณด์ฌ ์ฃผ์ง๋ง ํ ์คํธ์ฉ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํจ์ด๋ค.
์๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด OpenSSL ์์ฒด๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ค์ ํ์ผ(openssl.cnf) ํ์ผ์ด ์๋๋ฐ
์ด ์ค์ ์ด ํ์ธ์ด ์๋๋ค๋ฉด
" -config test_openssl.cnf" ์ด๋ ๊ฒ ์ง์ ์ง์ ํด์ ์ฌ์ฉ ํ๋ฉด ๋๋ค.
RootCA ์ฉ RSA ํค ์ ์์ฑ
- CA ๊ฐ ์ฌ์ฉํ RSA 2048 bits Key Pair ์์ฑ
openssl genrsa -out rsa_rootca.key 2048
CSR ( Certificate Signing Request ) ์์ฑ
openssl req -new -key rsa_rootca.key -out rsa_rootca.csr
์ด ๋ช ๋ น์ด๋ฅผ ์คํ ํ๋ฉด DN ๊ฐ ์ ๋ ฅ์ ์์ฒญํ๋ค.
RootCA ๊ด๋ จ ์ค์ ์ ๋ณด
[ req ]
default_bits = 2048
default_md = sha1
default_keyfile = lesstif-rootca.key
distinguished_name = req_distinguished_name
extensions = v3_ca
req_extensions = v3_ca
[ v3_ca ]
basicConstraints = critical, CA:TRUE, pathlen:0
subjectKeyIdentifier = hash
##authorityKeyIdentifier = keyid:always, issuer:always
keyUsage = keyCertSign, cRLSign
nsCertType = sslCA, emailCA, objCA
[req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = KR
countryName_min = 2
countryName_max = 2
RootCA ์ฉ ์ธ์ฆ์ ์์ฑ
openssl x509 -req -days 3650 -extensions v3_ca -set_serial 1 -in rsa_rootca.csr -signkey rsa_rootca.key -out rsa_rootca.crt
- extensions : openssl.cnf ์ค์ ํ์ผ์์ [ v3_ca ] ์ค์ ๊ฐ ์ฌ์ฉ
- set_serial : ์๋ฆฌ์ผ ๋ฒํธ ๊ฐ ์ค์
RootCA ์ธ์ฆ์ ์ ๋ณด ํ์ธ
openssl x509 -text -in rsa_rootca.crt
๋ฐ๊ธ ์ธ์ฆ์ RSA 2048 bit ํค ์ ์์ฑ
openssl genrsa -out rsa_cert.key 2048
๋ฐ๊ธ ์ธ์ฆ์ CSR ์์ฑ
openssl req -new -key rsa_cert.key -out rsa_cert.csr
์ธ์ฆ์ DN ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ค.
RootCA๋ฅผ ์ด์ฉํ 5๋ ์๋ฆฌ ์ธ์ฆ์ ๋ฐ๊ธ
openssl x509 -req -days 1824 -extensions v3_user -in rsa_cert.csr -CA rsa_rootca.crt -CAcreateserial -CAkey rsa_rootca.key -out rsa_cert.crt
- extensions : openssl.cnf ์ค์ ํ์ผ์์ [ v3_user ] ์ค์ ๊ฐ ์ฌ์ฉ
- CAcreateserial : ๋๋คํ ๊ฐ์ผ๋ก ์์ฑ ํ๋ค.
openssl.cnf ์์ v3_user ์์
[ v3_user ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
authorityKeyIdentifier = keyid,issuer
subjectKeyIdentifier = hash
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
## SSL ์ฉ ํ์ฅํค ํ๋
extendedKeyUsage = serverAuth,clientAuth
subjectAltName = @alt_names
[ alt_names]
## Subject AltName์ DNSName field์ SSL Host ์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ ์ด์ค๋ค.
## ๋ฉํฐ ๋๋ฉ์ธ์ผ ๊ฒฝ์ฐ *.test.com ์ฒ๋ผ ์ธ ์ ์๋ค.
DNS.1 = www.test.com
DNS.2 = test.com
DNS.3 = *.test.com
๋ฐ๊ธํ ์ธ์ฆ์ ์ ๋ณด ๋ณด๊ธฐ
openssl x509 -text -in rsa_cert.crt
'Manual > OpenSSL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OpenSSL] CA.pl ๋ช ๋ น์ด (0) | 2023.04.25 |
---|---|
[OpenSSL] CMP ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ (0) | 2023.04.07 |
[OpenSSL] OCSP ์ TSP ๋ช ๋ น์ด (0) | 2023.04.07 |
[OpenSSL] PKCS#12 (PFX) ํ์ผ ๋ง๋ค๊ธฐ ๋ช ๋ น์ด (0) | 2023.04.07 |
[OpenSSL] CMS ( Cryptographic Message Syntax ) ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ (3) | 2023.04.06 |