openssl genrsa -aes256 -out haedongg.net.key 2048
# 인증서 password를 제겋하기 위한 작업. 생략 가능
# 단, password로 보호되는 경우 해당 key로 생성된 cert를 사용하는 서버들은 서비스 구동 시 key의 password를 입력해줘야 한다.
cp haedongg.net.key haedongg.net.key.enc
openssl rsa -in haedongg.net.key.enc -out haedongg.net.key
cat << | tee haedongg.net.conf
EOF
[ req ]
default_bits = 2048
default_md = sha1
# 존재하는 ca.key 파일과 파일명이 일치해야 한다.
default_keyfile = ca.key
distinguished_name = req_distinguished_name
extensions = v3_user
[ v3_user ]
basicConstraints = CA:FALSE
authorityKeyIdentifier = keyid,issuer
subjectKeyIdentifier = hash
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth,clientAuth
subjectAltName = @alt_names
[ alt_names]
DNS.1 = www.haedongg.net
DNS.2 = *.haedongg.net
DNS.3 = *.was.haedongg.net
IP.1 = 192.168.0.*
[req_distinguished_name ]
# 국가 정보
countryName = Country Name (2 letter code)
countryName_default = KR
countryName_min = 2
countryName_max = 2
# 조직 정보
organizationName = Organization Name (eg, company)
organizationName_default = haedong Inc.
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = haedong SSL Project
# 이름. 단, AD 등에서 사용 할 경우 도메인이 일치해야 한다.
commonName = Common Name (eg, your name or your server's hostname)
commonName_default = haedongg.net
commonName_max = 64
EOF
openssl req -new -key haedongg.net.key -out haedongg.net.csr -config haedongg.net.conf
# -days 일수만큼 인증서의 유효기간이 설정된다.
openssl x509 -req -days 36500 -extensions v3_user -in haedongg.net.csr -CA ca.crt -CAcreateserial -CAkey ca.key -out haedongg.net.crt -extfile haedongg.net.conf