상단

인증서


 

인증기관(CA, Certificate Authority)

  • 안정한 인증서 관리를 위한 표준과 권고 사항에 대한 요구를 만족하여야 한다.

  • 인증서 발급, 조회, 폐기 등에 대한 다양한 기능 제공

  • Windows에서 신뢰할 수 있는 CA 등록 방법

    • Windows의 운영체제에서 루트 인증서 저장소에 CA 인증서 설치

  • Browser에서 신뢰할 수 있는 CA 등록 방법

 

사설 인증기관 (Private CA)

OpenSSL로 인증서 만들기

 

OpenSSL 설치

#--- openssl 설치
# yum  install  openssl
rpm  -qa  openssl

openssl  version
mkdir -p  /work/zzwork/ssl

사설 인증서 만들기

cd  /work/zzwork/ssl

#--- 2048 bits 사설 인증서(private.key) 생성
#---     삼중 DES 암호화 적용
openssl  genrsa  -des3  -out  private.key  2048

#--- 인증서에서 암호 삭제
openssl  rsa  -in  private.key  -out  private.pem

# cp  private.key  private.key.enc
# openssl  rsa  -in  private.key.enc  -out  private.key
 

개인키와 공개키 만들기

#--- 인증을 위한 키(dsa1024.pem) 생성
openssl  dsaparam  1024  -out  dsa1024  -out  dsa1024.pem

#--- 개인키(private.pem, privateKey.pem) 생성
#---    -days 365 : 365일간 사용 가능
openssl  req  -x509  -nodes  -days  365  -newkey  dsa:dsa1024.pem  -out  private.pem -keyout privateKey.pem
    Country Name (2 letter code) [XX]:KR
    State or Province Name (full name) []:Gyeonggi-do
    Locality Name (eg, city) [Default City]:Seongnam-si
    Organization Name (eg, company) [Default Company Ltd]:OBCon Inc.
    Organizational Unit Name (eg, section) []:Service Platform Division
    Common Name (eg, your name or your server's hostname) []:www.obcon.biz
    Email Address []:pnuskgh@gmail.com

#--- 공개키(mycert.pem) 생성
#---    -days 365 : 365일간 사용 가능
openssl  req  -x509  -new  -days  365  -key  privateKey.pem  -out  public.pem
    Country Name (2 letter code) [XX]:KR
    State or Province Name (full name) []:Gyeonggi-do
    Locality Name (eg, city) [Default City]:Seongnam-si
    Organization Name (eg, company) [Default Company Ltd]:OBCon Inc.
    Organizational Unit Name (eg, section) []:Service Platform Division
    Common Name (eg, your name or your server's hostname) []:www.obcon.biz
    Email Address []:pnuskgh@gmail.com
 

Root CA 만들기

#--- 2048 bits key 파일(rootCA.key) 생성
#---     genras  : RSA 방식으로 개인키 생성
#---     -aes256 : 개인카를 AES256으로 암호화
openssl  genrsa  -aes256  -out  rootCA.key  2048
    Enter pass phrase for rootCA.key:비밀번호
    Verifying - Enter pass phrase for rootCA.key:비밀번호

chmod  600 rootCA.key

#--- 인증서 요청(rootCA.csr) 생성
# openssl  req  -new  -key  rootCA.key  -out  rootCA.csr
    Enter pass phrase for rootCA.key:비밀번호
    Country Name (2 letter code) [XX]:KR
    State or Province Name (full name) []:Gyeonggi-do
    Locality Name (eg, city) [Default City]:Seongnam-si
    Organization Name (eg, company) [Default Company Ltd]:OBCon Inc.
    Organizational Unit Name (eg, section) []:Service Platform Division
    Common Name (eg, your name or your server's hostname) []:www.obcon.biz
    Email Address []:pnuskgh@gmail.com

    A challenge password []:      #--- 인증서 비밀번호
    An optional company name []:
    
vi  rootCA.conf
    [req]
    default_bits                  = 2048
    default_md                    = sha1
    default_keyfile               = 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
    organizationName              = Organization Name (eg, company)
    organizationName_default      = OBCon Inc.
    organizationalUnitName        = Organizational Unit Name (eg, section)
    organizationalUnitName_default= Service Platform Division
    commonName                    = Common Name (eg, your name or your server's hostname)
    commonName_default            = www.obcon.biz
    commonName_max                = 64    
openssl  req  -new  -key  rootCA.key  -out  rootCA.csr  -config  rootCA.conf

#--- Self Signed Certificate (rootCA.crt) 생성
#---    -days 365 : 365일간 사용 가능
openssl  x509  -req  -days  365  -extensions  v3_ca  -set_serial  1  -in rootCA.csr  -signkey  rootCA.key  -out rootCA.crt  -extfile  rootCA.conf

openssl  x509  -text  -in rootCA.crt
 

서버 인증서 만들기

#--- 2048 bits key 파일(server.key) 생성
#---     genras  : RSA 방식으로 개인키 생성
#---     -aes256 : 개인카를 AES256으로 암호화
openssl  genrsa  -aes256  -out  server.key  2048
# openssl  genrsa  -des3    -passout  pass:x  -out  server.pass.key  2048
# openssl  rsa  -passin  pass:x  -in  server.pass.key  -out  server.key

#---    key 파일에서 암호를 제거하고 싶은 경우
cp  server.key  server.key.enc
openssl  rsa  -in  server.key.enc  -out  server.key

chmod  600 server.key

#--- 인증서 요청(server.csr) 생성
vi  server.conf
    [req]
    default_bits                  = 2048
    default_md                    = sha1
    default_keyfile               = rootCA.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.obcon.biz
    DNS.2                         = obcon.biz
    DNS.3                         = *.obcon.biz
    
    [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      = OBCon Inc.
    organizationalUnitName        = Organizational Unit Name (eg, section)
    organizationalUnitName_default= Service Platform Division
    commonName                    = Common Name (eg, your name or your server's hostname)
    commonName_default            = www.obcon.biz
    commonName_max                = 64
openssl  req  -new  -key  server.key  -out  server.csr  -config  server.conf

#--- 서버 인증서 (server.crt) 생성
#---    -days 365 : 365일간 사용 가능
openssl  x509  -req  -days 365  -extensions  v3_user  -in  server.csr  -CA  rootCA.crt  -CAcreateserial  -CAkey  rootCA.key  -out  server.crt  -extfile  server.conf

openssl  x509  -text  -in  server.crt

공동인증서

  • 구 공인인증서

  • 유효기간 : 1년

  • 물리적인 매체에 저장

  

금융인증서

공인인증서의 보안을 강화하고 편의성을 개선한 인증서로 2020.12.10부터 실행

3년의 유효기간을 가지며 금융결제원 클라우드에 저장

금융결제원 금융인증센터

 

인증서 종류

인증통신사 PASS카카오페이 인증토스 인증네이버 인증KB모바일 인증
발급2000만2000만2300만200만570만
유효 기간3년2년3년3년없음
제휴국세청 홈택스, 정부24금융, 공공기관금융, 공공기관지방세/자동차세 납부KB금융 비대면 서비스
보안명의 인증
기기 인증

  

인증 수단

  • 6자리 비밀번호

  • 지문

  • 패턴

 

용어

  • Digital Certificate (인증서)

  • CA (Certificate Authority, 인증기관)

    • ROOT CAT : 최상위 인증기관

    • SSC (Self Signed Certificate)

  • CSR (Certicate Signing Request, 인증 요청서)

    • 인증기관에 인증서 발급을 요청하는 ASN.1 형식의 파일

  • PKI (Public Key Infrastructure, 공개키 기반 구조)

 

최종 수정일: 2024-09-30 12:26:19

이전글 :
다음글 :