'keystore'에 해당되는 글 3건

  1. 2008.08.14 Keytoo, openssl을 이용한 인증서 생성
  2. 2008.08.14 openssl 기본
  3. 2008.08.12 tomcat keystore 파일 설정 및 기타
posted by 동건이 2008. 8. 14. 11:39

Keytoo, openssl을 이용한 인증서 생성

1. Keytool 사용
JKS( java key store) 형식의 keystore  데이터 베이스를 생성한다.

 - CA로  서명 받지 않은 경우
a. Private/ Public key 생성
> keytool -genkey -alias esum -validaty 3650 -keystore keystore_esum
   keystore 암호를 입력하세요: passwordsample
   이름과 성을 입력하세요
   [UnKnown]: 10.10.10.10   <- SSL을 사용할 서버의 도메인이나 IP주소
   조직단위 이름을 입력하세요.
   [UnKnown] : Solution
   조직이름을 입력하세요.
   [UnKnown] : eTech
   구/군/시 이름을 입력하세요?
   [UnKnown] : Seoul
   시/도 이름을 입력하세요?
   [UnKnown] : Seoul
    이 조직의 두 자리 국가 코드를 입력하세요.
   [UnKnown] : KO
   CN=10.10.10.10, OU=Solution, O=eTech, L=Seoul, ST=Seoul, C=KO 가 맞습니까?
   [아니오]: 예

   <esum>에 대한 키 암호를 입력하세요
   (keystore 암호화 같은 경우 RETURN을 누르세요):

b. Keystore로 부터 인증서 추출
> keytool -export -alias esum -keystore keystore_esum -file esum.crt
   Keysotre 암호를 입력하세요 : passwordsample
   인증서가 <esum.crt> 파일에 저장되었습니다.

 - CA로  서명 받는 경우
a. Private/ Public key 생성
> keytool -genkey -alias esum -validaty 3650 -keystore keystore_esum
   keystore 암호를 입력하세요: passwordsample
   이름과 성을 입력하세요
   [UnKnown]: 10.10.10.10   <- SSL을 사용할 서버의 도메인이나 IP주소
   조직단위 이름을 입력하세요.
   [UnKnown] : Solution
   조직이름을 입력하세요.
   [UnKnown] : eTech
   구/군/시 이름을 입력하세요?
   [UnKnown] : Seoul
   시/도 이름을 입력하세요?
   [UnKnown] : Seoul
    이 조직의 두 자리 국가 코드를 입력하세요.
   [UnKnown] : KO
   CN=10.10.10.10, OU=Solution, O=eTech, L=Seoul, ST=Seoul, C=KO 가 맞습니까?
   [아니오]: 예

   <esum>에 대한 키 암호를 입력하세요
   (keystore 암호화 같은 경우 RETURN을 누르세요):
b. CSR( Cert Signature Request) 생성
인증기관(CA)로부터 자신의 공개키를 서명 받기 위해 인증서명요청서(CSR)를 생성해서 CA로 전송한다.
> keytool -certreq -alias esum -keystore keystore_esum -file esum.csr
   keystore 암호를 입력하세요: passwordsample

c. 인증기관으로 부터 인증서 회신 수신 및 keystore에 저장
인증기관으로 부터 받은 인증서 회신(Certificate)를 keystore내의 공개키(Self-Signed Certificate)를 대체한다.
인증서 회신의 종류는 단수인증서(Single certificate), PKCS#7형식으로 된 인증서 체인이 있다.
keystore에 인증서 회신을 저장하기 위해서는 인증서 회신(x.509)를 der 형식으로 변환해야 한다.
(openssl을 사용해서 변환)
 - 인증서 회신: 단수 인증서(single certificate) 저장
   단수 인증서는 발급자 서명 인증서(issuer-signed-certificate)라 한다. keytool을 사용하여 단수 인증서를
   keystore에 저장하는 경우 발급자 인증서와 최상위 인증서 사이의 체인을검사한다. 따라서, 단 수 인증서를
   발급한 인증기관과 최상위 인증기관 사이에 포함된 중계 인증기관의 인증서를 CA Certs File(cacerts)에
   저장해야한다. (Trust Certificate Entries)
   시스템 여건상 CA Certs File에 저장하지 못하는 경우 keystore 파일에 단수 인증서를 저장하기 전에
   인증기관의 인증서를 저장해야 한다.

   * CA Certs File 위치 : $JAVAHOME/lib/security
   * 단수 인증서 저장 절차
      ㄱ. 상위 기관 인증서가 CA Certs File 이나 keystore 파일에 존재하지 않는 경우 추가한다.
> keytool -import -keystore cacerts -file cacert.pem -alias testca
   keystore 암호를 입력하세요 : passwordsample
   소유자 : emailaddress=xxx@xxx.xxx, CN=xxxx, OU=xxxx, O=xxxx, ST=xxxx, C=KR
   발급자 : emailaddress=xxx@xxx.xxx, CN=xxxx, OU=xxxx, O=xxxx, ST=xxxx, C=KR
   일련번호 : 0
   개시일 : web jan.............................. 만료일 .................
   인증서 지문 :
           MD5 : xxxxxxxxxx
           SHA1: xxxxxxxxxxxx
   이 인증서를 신뢰하십니까?[아니오]: 예
   인증이 keystore에 추가되었습니다.


     ㄴ. 인증기관으로부터 발급 받은 인증회신파일을 keystore파일에 저장한다.
> keytool -import -alias esum -keystore keystore_xeni -file esum.crt -trustcacerts
   keystore 암호를 입력하세요 : passwordsample
   인증서 회신이 keystore 에 저장되었습니다.

   * trustcacerts : CA certs File 을 이용하여 상위 기관 인증서 검사


 - 인증서 회신: 인증서 체인 저장
PKCS#7 형식으로 된 인증서 체인(chain of certificate )에는 자신의 인증서 뿐만 아니라 상위기관
인증서를 체인형식으로 포함하고 있다. 따라서 별도로 상위 기관 인증서 검사를 위해 CA Certs File을
사용하지 않는다.
> keytool -import -alias esum -keystore keystore_test -file esum.p7c
keystore 암호를 입력하십시오 : passwordsample

 회신의 최상위 인증서

소유자: emailaddress=xxx@xxx.xxx, CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=xxx
발급자: emailaddress=xxx@xxx.xxx, CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=xxx
일련번호 : 0
개시일 : xxxxxxxxxxxxx 만료일: xxxxxxxxxxx
인증서 지문:
          MD5: xxxxxxx
          SHA1: xxxxxxxxxxxxxxxxxx

.... 인증되지 않았습니다. 회신을 설치하시겠습니까?[아니오]: 예
인증서 회신이 keystore에 설치되었습니다.
















'개발 > 외부 참조 글' 카테고리의 다른 글

Tomcat에서 KeyStore 파일 등록(SSL 서버 인증)  (0) 2008.08.14
OPENSSL 사용  (0) 2008.08.14
Keytoo, openssl을 이용한 인증서 생성  (0) 2008.08.14
openssl 기본  (0) 2008.08.14
SSL 기초  (0) 2008.08.14
tomcat keystore 파일 설정 및 기타  (0) 2008.08.12

댓글을 달아 주세요

posted by 동건이 2008. 8. 14. 10:19

openssl 기본

OPENSSL에서 등장하는 다양한 용어의 설명

1. PEM 파일
개인키, 공개키, 인증서 정보를 포함할 수 있다.
인증서를 PEM  형식으로 변환하려면 DER로 인코딩 한 후 Base64로 인코딩 하면 된다.
인코딩된 데이터 "-----BEGIN CERTIFICATE-----" 와 "-----END CERTIFICATE-----"
사이에 포함된다.

2. DER파일
개인키, 공개키,인증서를 포함할 수 있다.
KeySotre에 인증서(x.509)를 추가하려면 DER형식으로 변환해야 한다.

3. PKCS
Public Key Cryptography Standard 는 RSA사에서 주관하는 공개키 암호화를 위한 표준으로
PKCS#1 부터 PKCS#15까지 있다.


4. 인증서
인증서는 사용자의 공개키가 특정의 사용자에게 결합되어 있음을 증명하기 위하여 인증 기관이 발행하는
디지털 정보이다.
 - 사용자의 공개키, 인증기관(CA: Cerificate Authrity)의 서명
 - 인증서는 CA에 의해 발급된다.
 
5. KeyStore
개인키와 공개키로 사용되는 인증서(Certificate, X.509)가 저장된 데이터 베이스
 형식은 다음과 같다.
 - JKS(Java Key Store) : Keytool 을 상요하여 개인키와 공개키를 생성
 - PKCS#13
 포함 내요은 다음과 같다
 - 개인키와 공개키
 - Trust Certificate Entries
    .Public Key(Certificate)만 포함
    .인증서에 포함된 인증서 소유자(Subject)를 인증하기 위해서
       인증서를 발급한 기관의 인증서를 Trust Cerficate Entries 에 포함한다.

6. Keytool
Private Key와 Public Key(Self-signed Certificate)로 사용되는 인증서가 저장된 KeyStore를 관리하는 툴
 - keytool을 이용해 Private key를 생성할 수는 있으나, Keystore 에 저장(import) 또는 추출(Export)할 수 없다.
 - keytool은 der로 인코딩된 인증서(x.509)와 PKCS#7 형식의 파일만 저장(import)할 수 있다.
   

'개발 > 외부 참조 글' 카테고리의 다른 글

OPENSSL 사용  (0) 2008.08.14
Keytoo, openssl을 이용한 인증서 생성  (0) 2008.08.14
openssl 기본  (0) 2008.08.14
SSL 기초  (0) 2008.08.14
tomcat keystore 파일 설정 및 기타  (0) 2008.08.12
OpenSSL 설치  (0) 2008.08.11

댓글을 달아 주세요

posted by 동건이 2008. 8. 12. 21:37

tomcat keystore 파일 설정 및 기타

SSL Certificate Installation :: Tomcat Web Server

SSL Certificate Installation in Tomcat

Installing The Certificates to the Keystore

  1. Download your Certificate files from your DigiCert Web-PKI Customer Account to the directory where your keystore (keystore.key) was saved during the CSR creation process. The certificate must be installed to this exact keystore. If you try to install it to a different keystore it will not work.

    The three certificates you downloaded must be installed to your keystore in the correct order for your DigiCert certificate to be trusted. If the certificates are not installed in the correct order, then the certificate will not authenticate properly. Use keytool to install all three, as follows:

  2. Install the Root Certificate file:

    Each time you install a certificate to your keystore you will be prompted for the keystore password, which you chose when generating your CSR.

    Type the following command to install the Root certificate file:

    keytool -import -trustcacerts -alias root -file TrustedRoot.crt -keystore keystore.key

    ** Note: Choose 'Yes' if you get prompted with a message that says "Certificate already exists in system-wide CA keystore under alias <entrustsslca> Do you still want to add it to your own keystore? [no]:"

    You will get a confirmation stating that the "Certificate was added to keystore"

  3. Install the Intermediate Certificate file:

    Type the following command to install the Intermediate certificate file:

    keytool -import -trustcacerts -alias digicert -file DigiCertCA.crt -keystore keystore.key

    You will get a confirmation stating that the "Certificate was added to keystore".

  4. Install the Primary Certificate file:

    Type the following command to install the Primary certificate file:

    keytool -import -trustcacerts -alias tomcat -file your_domain_name.crt -keystore keystore.key

    This time you should get a slightly different confirmation stating that the "Certificate reply was installed in keystore"

    If it asks if you want to trust the certificate. Choose y or yes.

    Your Certificates are now installed to your keystore file (keystore.key) and you just need to configure your server to use the keystore file.

Configuring your SSL Connector

Tomcat will first need an SSL Connector configured before it can accept secure connections.

**Note: By default Tomcat will look for your Keystore with the file name .keystore in the home directory with the default password changeit. The home directory is generally /home/user_name/ on Unix and Linux systems, and C:\Documents and Settings\user_name\ on Microsoft Windows systems. -- It is possible to change the filename, password, and even location that Tomcat looks for the keystore. If you need to do this, pay special attention to #8 of Option 1 or #5 of Option 2 below.

Option 1 -- Add an SSL Connector using admintool:

  1. Start Tomcat.
  2. Enter 'http://localhost:8080/admin' in a local browser to start admintool.
  3. Type a username and password with administrator rights.
  4. On the left select service (Java Web Services Developer Pack).
  5. Select Create New Connector from the drop-down list on the right.
  6. Choose HTTPS in the Type field.
  7. In the Port field, enter 443. This defines the TCP/IP port number on which Tomcat will listen for secure connections.
  8. Enter the Keystore Name and Keystore Password if your keystore is named something other than .keystore, if .keystore is located in a directory other than the home directory of the machine on which Tomcat is running, or if the password is something other than the default value of changeit. If you have used the default values, you can leave these fields blank.
  9. Select Save to save the new Connector.
  10. Select Commit Changes to save the new Connector information to the server.xml file so that it is available the next time Tomcat is started.

Option 2 -- Configure the SSL Connector in server.xml:

  1. Copy your keystore file (your_domain.key) to the home directory (see the **Note above).
  2. Open the file Home_Directory/conf/server.xml in a text editor.
  3. Uncomment the SSL Connector Configuration.
  4. Make sure that the Connector Port is 443.
  5. If your keystore filename is something other than the default file name (.keystore) and/or your keystore password is something other than default (changeit) then you will need to specify the correct keystore filename and/or password in your connector configuration -- ex. keypass="newpassword"

    When you are done your connector should look something like this:

    <Connector port="443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/home/user_name/keystore.key" keypass="your_keystore_password" />

  6. Save the changes to server.xml.
  7. Restart Tomcat.

Installing your SSL Certificates in Tomcat Web Server

'개발 > 외부 참조 글' 카테고리의 다른 글

openssl 기본  (0) 2008.08.14
SSL 기초  (0) 2008.08.14
tomcat keystore 파일 설정 및 기타  (0) 2008.08.12
OpenSSL 설치  (0) 2008.08.11
JNI  (0) 2008.08.11
자바 리플렉션  (1) 2008.08.11

댓글을 달아 주세요