2. SSL 설치 및 시작#
이 장은 Altibase에서 SSL 통신을 사용하기 위한 소프트웨어 요구사항 및 설치하는 방법에 대하여 설명한다.
소프트웨어 요구사항#
이 절은 서버와 클라이언트에서 SSL 통신을 사용하기 위한 요구사항을 설명한다.
서버(Server)#
-
OpenSSL 툴킷 3.0.8
-
Altibase 7.3.0.0.0 이상
OpenSSL 툴킷은 Altibase에서 SSL/TLS 프로토콜을 이용한 SSL 통신을 사용하기 위해 필요하다. OpenSSL 툴킷은 OpenSSL 프로젝트로 개발되었으며 OpenSSL 홈페이지에서 다운로드할 수 있다. Altibase 7.3 부터는 OpenSSL 3.0.8을 지원하게 됨에 따라, OpenSSL 1.0.x 버전은 더이상 지원하지 않는다.
클라이언트(Client)#
ODBC, CLI, ADO.NET#
ODBC, CLI 그리고 ADO.NET에서 SSL 통신을 사용하기 위해서는 반드시 OpenSSL 툴킷이 설치되어야 한다.
JDBC#
SSL을 통하여 클라이언트 자바 애플리케이션을 자유롭게 실행하기 위해서는 JAVA 1.8.0_351 이상을 쓸 것을 권장한다. JAVA 1.8.0_351 이상이 권장되는 이유는 다음과 같다.
-
TLS 1.3 암호 알고리즘을 사용하려면, JAVA 1.8.0_351 이상에서 별도의 설정을 하지 않고 사용할 수 있다.
-
JAVA 1.8.0_261부터 TLS 1.3을 지원하지만, TLS 1.3을 사용하기 위해서는 아래와 같이 별도의 설정이 필요하다.
$ java -Djdk.tls.client.protocols="TLSv1.3"
SSL 사용을 위한 환경 설정#
이 절은 Altibase에 SSL 통신을 사용하기 위한 환경 설정에 대해 설명한다.
서버 환경 설정#
-
Step 1: OpenSSL 설치 및 라이브러리 확인
-
Step 2: 서버 프로퍼티 설정
-
Step 3: SSL 클라이언트 인증 지정
-
Step 4: 서버 인증서, 개인키, 인증 기관 설정
-
Step 5: 서버 시작
Step 1:OpenSSL 설치 및 라이브러리 확인#
SSL이 활성화된 Altibase를 설치하기 전에 OpenSSL 툴킷을 설치하는 것이 좋다. 만약 OpenSSL 툴킷이 설치되지 않았는데 Altibase의 SSL을 사용하면, Altibase는 OpenSSL 라이브러리를 찾을 수 없다는 경고 메시지를 출력한다.
서버에 OpenSSL이 설치가 끝나면 아래와 같이 설치된 OpenSSL 버전을 확인한다.
$ openssl version
OpenSSL 3.0.8 7 Feb 2023 (Library: OpenSSL 3.0.8 7 Feb 2023)
Step 2: 서버 프로퍼티 설정#
Altibase에서 SSL로 접속하여 사용하려면 다음의 프로퍼티를 설정하여야 한다. SSL 접속을 위한 관련 프로퍼티들은 $ALTIBASE_HOME/conf/altibase.properties에 있다. 프로퍼티에 대한 자세한 설명은 General Reference를 참조한다.
- SSL_ENABLE
SSL_ENABLE은 Altibase에서 SSL을 활성화/비활성화 한다. SSL을 사용하려면, 이 프로퍼티의 값은 1이어야 한다. - SSL_PORT_NO
SSL_PORT_NO는 SSL 접속이 사용할 포트 번호를 지정한다. 이 값은 시스템에서 유일해야 한다. - SSL_MAX_LISTEN
SSL 로 접속하여 동시에 Altibase에 접속할 수 있는 대기 큐의 최대 크기를 설정한다. 이 값이 클수록 Altibase에 더 많은 메모리가 필요하다. -
SSL_CIPHER_LIST
이 값은 서버와 클라이언트가 협의하고 사용할 수 있는 암호(CIPHER)의 목록이다. 사용자의 보안 정책에 따라 한 개 이상의 암호를 사용할 수 있으며, 암호는 콜론 (:)으로 구분한다. 사용자가 사용할 수 있는 암호 목록은 OpenSSL에서 확인하거나 아래처럼 명령어를 사용하여 확인할 수 있다.$ openssl ciphers
만약 TLS 1.3의 특정 암호를 사용하고자 하는 경우에는 SSL_CIPHER_SUITES에 설정해야 한다. 한 개 이상의 암호를 설정할 수 있으며, 콜론(:)으로 구분한다.
-
SSL_CIPHERS_SUITES
TLS 1.3의 암호 목록을 지정한다. 설정하지 않으면, OpenSSL에서 허용하는 tls 1.3의 암호 목록을 모두 사용함을 의미한다. -
SSL_LOAD_CONFIG
OpenSSL Configuration 파일(openssl.cnf)을 로딩하도록 설정하는 프로퍼티이다. 기본값은 0(Disable)이다. OpenSSL FIPS 모듈을 사용하기 위해서는 이 프로퍼티의 값을 1로 설정해야 한다.- 0: OpenSSL Configuration 파일을 로딩하지 않음
- 1: OpenSSL Configuration 파일을 로딩함
Step 3: SSL 클라이언트 인증 설정#
- SSL_CLIENT_AUTHENTICATION
SSL 인증 모드를 서버 전용 인증 또는 상호 인증으로 설정할 수 있다. 이 값을 0으로 하면 서버만 인증하고, 1로 하면 서버-클라이언트를 상호 인증한다.
Step 4: 인증서, 개인키, 인증 기관(CA) 설정#
-
SSL_CERT
-
SSL_KEY
-
SSL_CA
-
SSL_CAPATH
SSL_CERT#
SSL_CERT 값은 서버의 인증서가 위치한 경로를 지정한다.
예를 들어 서버의 인증서 이름이 cert/server-cert.pem이고, $ALTIBASE_HOME/cert에 위치한 경우, 이 프로퍼티의 값은 $ALTIBASE_HOME/cert/server-cert.pem이다.
SSL_KEY#
서버의 개인키(private key)가 위치하는 경로를 지정한다.
예를 들어 서버의 개인 키 이름이 server-key.pem이고, $ALTIBASE_HOME/cert에 위치한 경우, 이 프로퍼티의 값은 $ALTIBASE_HOME/cert/server-key.pem이다.
SSL_CA, SSL_CAPATH#
공인 기관에서 발급받은 CA 인증서의 소유권을 인정받기 위해 SSL_CA 또는 SSL_CAPATH 프로퍼티가 설정되어야 한다. CA 인증서 파일은 사용자 지정 경로나 X.509 형식의 디렉토리에 위치한다
만약 공인인증서가 없다면, 개인인증서를 생성하여 SSL을 사용할 수 있다.
Step 5: 서버 시작#
SSL 통신이 가능한 Altibase를 시작한다. Altibase는 서버와 클라이언트에서 SSL을 사용하기 위하여 샘플 파일을 부록에 소개하고 있다.
SSL_ENABLE 프로퍼티의 값이 1(SSL사용)로 설정되었다면, SSL을 이용하기 위한 대기 포트가 아래와 같이 나타난다. 즉 환경변수로 ALTIBASE_PORT_NO와 ALTIBASE_SSL_PORT_NO 둘 다 정의되어야 한다.
$ server start
-----------------------------------------------------------------
Altibase Client Query utility.
Release Version 7.3.0.0.1
Copyright 2000, Altibase Corporation or its subsidiaries.
All Rights Reserved.
-----------------------------------------------------------------
ISQL_CONNECTION = UNIX, SERVER = localhost
[ERR-910FB : Connected to idle instance]
Connecting to the DB server.... Connected.
...
TRANSITION TO PHASE : SERVICE
[CM] Listener started : TCP on port 20300 [IPV4]
[CM] Listener started : SSL on port 20443 [IPV4]
...
--- STARTUP Process SUCCESS ---
Command executed successfully.
JDBC 환경 설정#
-
Step 1: 인증서 가져오기
-
Step 2: 인증을 위한 환경 설정
-
Step 3: SSL을 위한 JDBC 프로퍼티 설정
-
Step 4: Altibase 환경변수 설정
Step 1: 인증서 가져오기#
서버의 CA 인증을 위해 인증서를 Truststore에 가져오거나, CA 인증과 암호키를 얻기 위해 Keystore에 인증서를 가져온다. JSSE(Java Secure Socket Extension)는 인증을 위해 Truststore와 Keystore를 사용한다.
인증서를 가져오기 위해 수행할 작업은 공개 인증서와 개인인증서의 타입에 따라 다르며, 그 후 작업은 선택된 인증 모드에 따라 다르다.
-
서버 전용 모드의 개인 인증서
Truststore에 서버의 CA 인증서를 가져온다. -
상호 인증 모드의 개인 인증서
Truststore에 서버의 CA 인증서를 가져온다. 그리고 Keysotre에 CA 인증과 비밀키를 포함하고 있는 PKCS #12 파일을 가져온다. -
서버 전용 모드의 공개 인증서
작업 내역이 없다. -
상호 인증 모드의 공개 인증서
Keysotre에 CA 인증과 비밀키를 포함하고 있는 PKCS #12 파일을 가져온다.
1번, 2번의 경우처럼 개인 인증서를 사용할 때, 아래와 같이 CA 인증서를 truststore에 가져온다.
$ keytool -import -alias alias_name -file server_certificate_file.pem -keystore truststore -storepass password
2번과 4번의 경우, 상호 인증 모드를 위하여 우선 CA 인증과 비밀 키가 필요하다. 인증서와 비밀 키를 가져오기 전에 가지고 있는 인증서와 비밀 키가 PKCS #12 형식의 파일에 있는지 확인한다.
PKCS #12 파일이 없다면, 클라이언트의 인증서와 비밀 키를 가진 PKCS #12 파일을 생성하기 위해 아래와 같이 pkcs12 옵션을 사용하여 OpenSSL을 실행한다.
$ openssl pkcs12 -export -in client_certificate.pem -inkey client_secretkey_file.pem > pkcs_file.p12
PKCS #12 파일이 있다면, 아래와 같이 Keystore에 PKCS #12 파일을 가져온다.1
$ keytool -importkeystore -srckeystore pkcs_file.p12 -destkeystore keystore.jks -srcstoretype pkcs12
Step 2: 인증을 위한 환경 설정#
자바 애플리케이션에서 SSL 인증 환경을 설정하기 위해, JRE는 Truststore와 Keystore에 접근해야 한다. 사용자는 아래의 3가지 방식중 하나를 선택하여 인증 환경을 설정할 수 있다.
-
자바 애플리케이션에서 명령어 사용
-
자바 애플리케이션에서 System.set Property 설정
-
자바 애플리케이션에서 JDBC 프로퍼티 설정
자바 애플리케이션에서 명령어 사용#
-Djavax.net.ssl.keyStore=path_to_keystore
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=path_to_truststore
-Djavax.net.ssl.trustStorePassword=password
자바 애플리케이션에서 System.set Property 설정#
System.setProperty("javax.net.ssl.keyStore", "path_to_keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
System.setProperty("javax.net.ssl.trustStore", "path_to_truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
자바 애플리케이션에서 JDBC 프로퍼티 설정#
Properties sProp = new Properties();
sProps.put("keystore_url", "path_to_keystore");
sProps.put("keystore_password", "password");
sProps.put("truststore_url", "path_to_truststore");
sProps.put("truststore_password", "password");
Step 3: SSL을 위한 JDBC 프로퍼티 설정#
Altibase는 SSL을 사용하기 위해 SSL 연결을 위한 JDBC를 제공한다. SSL을 위한 JDBC 프로퍼티는 아래와 같이 구분된다.
-
SSL 연결을 위한 JDBC 프로퍼티
-
인증을 위한 JDBC 프로퍼티
SSL 연결을 위한 JDBC 프로퍼티#
이름 | 설명 | 값의 범위 | 기본값 |
---|---|---|---|
ssl_enable | 서버에 SSL 통신을 사용해서 접속할지 여부를 설정한다. 이 값이 true일 경우 SSL 커넥션을 생성하고, false일 경우 TCP 커넥션을 생성한다. | true false |
false |
port | 접속을 시도할 대상 서버의 포트번호를 지정한다. SSL 포트 번호가 적용되는 우선순위는 아래와 같다. ssl_enable이 true일 경우 port 값이 지정되었다면 우선 적용되고, 지정되지 않은 경우 ALTIBASE_SSL_PORT_NO 환경 변수의 값을 따른다. 하지만 ALTIBASE_SSL_PORT_NO의 값도 지정되지 않은 경우, 기본값 20300이 적용된다. | 0 ~ 65535 | ssl_enable(false): 20300 ssl_enable(true): 20443 |
ciphersuite_list | 사용할 암호 알고리즘 목록이다. 암호명은 콜론(:)으로 구분된다. SSL_RSA_WITH_RC4_128_MD5:SSL_RSA_WITH_RC4_128_SHA. 만약 JRE가 이 알고리즘을 지원하지 않는다면, IllegalArgumentException이 나타난다. | String | JRE가 지원하는 모든 cipher suite list |
ssl_protocols | 서버에 SSL 통신을 위해 사용할 프로토콜 목록이다. 콤마(,)를 이용하여 여러개의 프로토콜을 지정할 수 있다. 예: "TLSv1.2,TLSv1.3" | String | JRE가 지원하는 모든 SSL/TLS protocol |
인증을 위한 JDBC 프로퍼티#
이름 | 설명 | 값의 범위 | 기본값 |
---|---|---|---|
verify_server_certificate | 대상 서버의 CA 인증서를 인증할지 여부를 설정한다. 이 값을 FALSE로 설정하면, 클라이언트의 애플리케이션은 서버의 CA 인증서를 인증하지 않고, SSL exception이 발생한다. 그러나 서버의 개인인증서를 가져올 필요는 없다. | true false |
true |
keystore_url | KeyStore의 경로를 지정한다. KeyStore는 개인 인증서와 공개 인증서를 가지고 있다. | String | |
keystore_type | keystore_url의 keystore 타입을 설정한다. Java는 기본적으로 Java Key Store(JKS) 타입으로 처리된다. | JKS, JCEKS, PKCS12 등 | JKS |
keystore_password | keystore_url에 비밀번호를 지정한다. | String | |
truststore_url | TrustStore의 경로를 지정한다. TrustStore는 CA의 인증서를 갖고있는 KeyStore이다. | String | |
truststore_type | truststore_url의 TrustStore 타입을 설정한다. Java는 기본적으로 Java Key Store(JKS) 타입으로 처리된다. | JKS, JCEKS, PKCS12 등 | JKS |
truststore_password | truststore_url의 비밀번호를 지정할 수 있다. | String |
Step 4: Altibase 환경변수 설정#
Altibase가 SSL 통신을 하기 위한 포트(port) 번호를 설정하는 단계이며, 생략할 수 있다.
JDBC에서 port 프로퍼티를 설정하지 않았을 때, ALTIBASE_SSL_PORT_NO에 설정된 값이 포트번호로 사용된다. 만약 ALTIBASE_SSL_PORT_NO가 생략되었다면, port 프로퍼티의 기본 값이 사용된다.
이름 | 설명 | 값의 범위 | 기본값 |
---|---|---|---|
ALTIBASE_SSL_PORT_NO | 접속할 서버의 SSL 포트 번호를 설정한다. | 1024 ~ 65535 |
JDBC에서 SSL 사용시 고려사항#
JDBC에서 SSL을 사용할 때 아래의 사항을 고려해서 사용한다
KeyStore에 PKCS #12 가져오기#
SSL을 통한 상호 인증을 사용하기 위해서는 우선 클라이언트의 CA 인증서와 개인 키를 KeyStore로 가져와야 한다. keytool로 -importkeystore 옵션을 이용하여 아래와 같이 PKCS #12 를 가져올 수 있다.
$ keytool -importkeystore -srckeystore pkcs_file.p12 -destkeystore keystore.jks
-srcstoretype pkcs12
ODBC/CLI 환경 설정#
- Step 1: OpenSSL 라이브러리 확인
- Step 2: 클라이언트 인증서 준비
- Step 3: SSL을 위한 ODBC/CLI 프로퍼티 설정
- Step 4: Altibase 환경 변수 설정 (FIPS 모듈을 사용할 경우)
- Step 5: 클라이언트 프로그램 작성
Step 1: OpenSSL 라이브러리 확인#
ODBC와 CLI에서 SSL 통신을 사용하기 위해 OpenSSL 라이브러리가 필요하다. ODBC와 CLI는 서버와 연결하면서 OpenSSL 라이브러리를 읽어 필요한 함수들을 호출한다.
따라서 클라이언트 애플리케이션을 작성하기 전에 OpenSSL 라이브러리가 제대로 설치되었는지 확인해야 한다. 라이브러리가 설치되는 위치는 운영시스템에 따라 달라질 수 있다.
-
라이브러리 설치 확인
$ ls -al /usr/lib/libssl* $ ls -al /usr/lib/libcrypto*
-
유틸리티 설치 확인
$ openssl version
Step 2: 클라이언트 인증서 준비#
서버와 클라이언트의 상호 인증을 위해 PEM 형태로 된 클라이언트의 인증서와 개인키를 준비한다. 해당 파일들은 ODBC나 CLI를 이용하는 클라이언트가 접근할 수 있는 위치에 있어야 한다.
Step 3: SSL을 위한 ODBC/CLI 프로퍼티 설정#
SSL 통신을 사용하려는 클라이언트 프로그램을 작성하기 전에 SSL 관련 프로퍼티들을 설정해야 한다. 클라이언트는 서버 접속시 다음의 프로퍼티들을 연결 문자열(connection string)로 지정할 수 있다.
SSL 접속을 위한 관련 프로퍼티들은 $ALTIBASE_HOME/conf/altibase.properties에 있다.
이름 | 설명 | 값의 범위 | 기본값 |
---|---|---|---|
SSL_CA | CA 인증서의 소유권을 인정받기 위해서 CA 인증서를 저장하는 파일의 경로를 지정할 수 있다. CA 인증서 파일은 사용자 지정 경로나 X.509 형식의 디렉토리에 위치한다. 예: SSL_CA=/cert/ca-cert.pem |
||
SSL_CAPATH | CA 디렉토리 형식의 CAPATH를 지정할 수 있다. 예: SSL_CAPATH=/etc/ssl/certs |
||
SSL_CERT | 클라이언트의 인증서 파일 경로를 지정한다. 예: SSL_CERT=/cert/client-cert.pem |
||
SSL_KEY | 클라이언트의 개인 키(private key)가 저장된 파일 경로를 지정한다. 예: SSL_KEY=/cert/client-key.pem |
||
SSL_VERIFY | Altibase 서버의 인증서를 검증할지 여부를 설정한다. 만약 검증에 실패하면 SSL Handshake 는 실패하고, SSL 통신은 더 이상 진행되지 않는다. 0(OFF): 서버의 인증서를 검증하지 않는다. 1(ON): 서버의 인증서를 검증한다. 예: SSL_VERIFY=0 |
0: OFF 1: ON |
0(OFF) |
SSL_CIPHER | 이 프로퍼티는 클라이언트가 서버와 협의하여 사용할 수 있는 암호 알고리즘들이다. 암호 알고리즘은 사용자의 보안 정책에 따라 하나 또는 그 이상의 암호를 사용할 수 있다. 한 개 이상의 암호를 사용할 경우 콜론(:)으로 구분한다. 사용자가 사용할 수 있는 암호 목록은 OpenSSL에서 확인하거나 "$ openssl ciphers" 명령어를 사용하여 확인할 수 있다. 예: SSL_CIPHER=EDH-DSS-DES-CBC-SHA:DES-CBC-SHA |
다음은 서버의 SSL 프로퍼티와 ODBC/CLI 프로퍼티를 비교한 표이다.
이름 | 서버 (altibase.properties) | ODBC/CLI |
---|---|---|
SSL_ENABLE | O | X 클라이언트는 CONNTYPE=SSL 일 경우 SSL_ENABLE=1과 동일한 의미이다. |
SSL_PORT_NO | O | X 클라이언트에서는 별도의 SSL용 포트 없이 CONNTYPE=SSL;PORT=20443 등으로 접속한다. |
SSL_MAX_LISTEN | O | X |
SSL_CLIENT_AUTHENTICATION | O | X |
SSL_CIPHER_LIST | O | X |
SSL_CA | O | O |
SSL_CAPATH | O | O |
SSL_CERT | O | O |
SSL_KEY | O | O |
SSL_CIPHER | X | O |
SSL_VERIFY | X | O |
Step 4: Altibase 환경 변수 설정 (FIPS 모듈을 사용할 경우)#
FIPS 모듈을 사용하기 위해서는 클라이언트의 환경변수에 ALTIBASE_SSL_LOAD_CONFIG 프로퍼티를 1로 설정해야 한다. FIPS 모듈을 사용하지 않을 경우 이 과정은 생략할 수 있다. 자세한 내용은 OpenSSL FIPS 모듈 사용하기를 참고한다.
이름 | 설명 | 기본값 |
---|---|---|
ALTIBASE_SSL_LOAD_CONFIG | OpenSSL configuration 파일을 로딩할 것인지를 지정한다. 0: 로딩하지 않는다. 1: 로딩한다. | 0 |
Step 5: 클라이언트 프로그램 작성#
클라이언트 애플리케이션에서 SSL 통신을 사용하기 위해 프로그램을 작성한다. Altibase는 SSL을 사용하는 샘플 프로그램을 제공한다. 해당 파일의 경로는 $ALTIBASE_HOME/sample/SQLCLI/SSL 이다.
OpenSSL FIPS 모듈 사용하기#
FIPS 140 검증은 암호화 모듈의 보안과 신뢰성을 검증하는 프로그램으로, 검증을 통과한 모듈은 미국 연방 정부와 이와 관련된 기관에서 사용될 수 있다. Altibase에서 OpenSSL의 FIPS 모듈을 사용하려면 다음의 순서로 설정을 변경하여야 한다.
- OpenSSL configuration 파일에서 FIPS 모듈을 사용하도록 설정한다. (http://www.openssl.org 참조)
- Altibase 서버의 SSL_LOAD_CONFIG 프로퍼티를 1로 설정한다.
- ODBC 및 CLI 응용 프로그램의 환경 변수 ALTIBASE_SSL_LOAD_CONFIG를 1로 설정한다.
ADO.NET 환경 설정#
- Step 1: OpenSSL 라이브러리 확인
- Step 2: 클라이언트 인증서 준비
- Step 3: SSL을 위한 .NET 연결 속성 정보 설정
- Step 4: 클라이언트 프로그램 작성
Step 1: OpenSSL 라이브러리 확인#
ODBC/CLI 환경 설정 Step 1과 동일하다.
Step 2: 클라이언트 인증서 준비#
ODBC/CLI 환경 설정의 Step 2와 동일하다.
Step 3: SSL을 위한 .NET 연결 속성 정보 설정#
SSL 통신을 사용하여 서버에 접속할 때, 다음의 프로퍼티들을 연결 문자열(connection string)로 지정할 수 있다.
이름 | 설명 | 값의 범위 | 기본값 |
---|---|---|---|
conn type | 서버에 SSL 통신을 사용해서 접속할지 여부를 설정한다. 이 값이 ssl 일 경우 SSL 통신으로 서버에 접속한다. | ssl | |
port | 접속할 대상 서버의 포트 번호인 SSL_PORT_NO의 값을 지정한다. | 0 ~ 65535 | |
ssl ca | ODBC/CLI 환경 설정 > Step 3: SSL을 위한 ODBC/CLI 프로퍼티 설정에서 SSL_CA 참조 | ||
ssl capath | ODBC/CLI 환경 설정 > Step 3: SSL을 위한 ODBC/CLI 프로퍼티 설정에서 SSL_CAPATH 참조 | ||
ssl cert | ODBC/CLI 환경 설정 > Step 3: SSL을 위한 ODBC/CLI 프로퍼티 설정에서 SSL_CERT 참조 | ||
ssl key | ODBC/CLI 환경 설정 > Step 3: SSL을 위한 ODBC/CLI 프로퍼티 설정에서 SSL_KEY 참조 | ||
ssl verify | ODBC/CLI 환경 설정 > Step 3: SSL을 위한 ODBC/CLI 프로퍼티 설정에서 SSL_VERIFY 참조 | false: OFF true: ON | false |
ssl cipher | ODBC/CLI 환경 설정 > Step 3: SSL을 위한 ODBC/CLI 프로퍼티 설정에서 SSL_CIPHER 참조 |
Step 4: 클라이언트 프로그램 작성#
클라이언트 애플리케이션에서 SSL 통신을 사용하기 위해 프로그램을 작성한다. "부록 A. SSL Sample" 장에 수록된 ADO.NET을 이용한 SSL 통신 샘플 절을 참고한다.
-
'-importkeystore' 옵션을 사용하여 Keystore에 pem형태의 파일을 가져올 수 있다. ↩