1. 인터넷에서 openssl download 검색 또는 웹 브라우저에서 아래 주소로 접속
https://sourceforge.net/projects/openssl/
(글 작성중인) 현재 2016년 9월 버전 압축파일 다운로드 가능
http://slproweb.com/products/Win32OpenSSL.html
32/64비트 설치프로그램 다운로드 가능.
2. 적당한 폴더에 압축 파일을 풀고 경로와 환경 파일을 시스템에 등록. 설치 프로그램으로 설치한 경우, 생략 가능.
path 추가 : C:\OpenSSL\bin
OpenSSL 환경파일을 시스템 환경변수에 추가
변수 명 : OPENSSL_CONF
변수 값 : C:\OpenSSL\bin\openssl.cnf
(새로 실행한) cmd에서 openssl version 실행
결과 : OpenSSL 1.0.2j-fips 26 Sep 2016
또는 : OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
3. RootKey (루트 인증서 키)파일 만들기
openssl ecparam -genkey -name prime256v1 -out rootca.key
ec : EC (Elliptic curve) key processing.
ecparam : EC parameter manipulation and generation.
-genkey :
This option will generate an EC private key using the specified parameters.
-name arg :
Use the EC parameters with the specified 'short' name.
Use -list_curves to get a list of all currently implemented EC parameters.
-out filename :
This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should not be the same as the input filename.
=> 포물선 키 프로세스 방식으로 키를 작성하는데 prime256v1 이라는 이름의 변수를 사용해서 rootca.key 파일을 생성함.
4. 인증 서명 요청서 (rootca.csr) 만들기
openssl req -new -sha256 -key rootca.key -out rootca.csr
req :
인증서 발급에 필요한 정보를 담고있는 '인증 서명 요청' 파일(csr) 생성. Root CA 인증서는 자기 자신 인증으로 만들 수 있음.
-new :
이 옵션은 새 인증서 요청을 생성합니다. 사용자에게 관련 필드 값을 묻는 메시지가 표시됩니다. 프롬프트된 실제 필드, 최대/최소 크기는 설정 파일 및 요구한 extension에 지정(저장)됩니다.
-key 옵션이 제공되지 않으면 구성 파일에 지정되거나 -newkey 및 -pkeyopt 옵션과 함께 제공된 정보를 사용하여 새 개인 키를 생성하고, 그렇지 않으면 기본적으로 2048비트 길이의 RSA 키를 생성합니다.
If the -key option is not given it will generate a new private key using information specified in the configuration file or given with the -newkey and -pkeyopt options, else by default an RSA key with 2048 bits length.
-sha256
-key filename | uri
이 옵션은 새 인증서 또는 인증서 요청에 서명하기 위한 개인 키를 제공합니다. -in을 지정하지 않으면 해당 공개 키가 새 인증서 또는 인증서 요청에 배치되어 자체 서명이 생성됩니다.
인증서 서명의 경우 이 옵션은 -CA 옵션으로 재정의(overridden)됩니다.
이 옵션은 PEM 형식 파일에 대한 PKCS#8 형식 개인 키도 허용합니다.
C:\src\PyTest\ssl>openssl req -new -sha256 -key rootca.key -out rootca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:KR
State or Province Name (full name) [Some-State]:Gyeonggi-do
Locality Name (eg, city) []:Seoul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany
Organizational Unit Name (eg, section) []:AIRnD
Common Name (e.g. server FQDN or YOUR name) []:MyCompany.co.kr
Email Address []:test@mycompany.co.kr
-----
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
C:\src\PyTest\ssl>
5. rootca.crt SSL 인증서 파일 만들기 (CA 루트 인증서)
openssl x509 -req -sha256 -days 999999 -in rootca.csr -signkey rootca.key -out rootca.crt
x509
X.509 Certificate Data Management.
이 명령은 다목적 인증서 처리 명령입니다. 인증서 정보를 인쇄하고, 인증서를 다양한 형식으로 변환하고, 인증서 신뢰 설정을 편집하고, 처음부터 인증서를 생성하거나 요청을 인증한 다음 자체 서명하거나 "마이크로 CA"처럼 서명하는 데 사용할 수 있습니다.
signkey : This option is an alias of -key.
key :
이 옵션은 새 인증서 또는 인증서 요청에 서명하기 위한 개인 키를 제공합니다. -force_pubkey를 지정하지 않으면 해당 공개 키가 새 인증서 또는 인증서 요청에 배치되어 자체 서명이 생성됩니다.
in :
이것은 -req 플래그가 사용되는 경우 인증서 요청을 읽기 위한 입력 파일 또는 인증서를 읽기 위한 입력을 지정합니다. 두 경우 모두 기본값은 표준 입력입니다.
이 옵션은 -new 플래그와 함께 사용할 수 없습니다.
6. 서버 키 만들기
openssl ecparam -out server.key -name prime256v1 -genkey
ec : EC (Elliptic curve) key processing.
ecparam : EC parameter manipulation and generation.
-genkey :
This option will generate an EC private key using the specified parameters.
-name arg :
Use the EC parameters with the specified 'short' name.
Use -list_curves to get a list of all currently implemented EC parameters.
-out filename :
This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should not be the same as the input filename.
=> 포물선 키 프로세스 방식으로 키를 작성하는데 prime256v1 이라는 이름의 변수를 사용해서 server.key 파일을 생성함.
7. 서버 인증 서명 요청서 만들기
openssl req -new -sha256 -key server.key -out server.csr
req :
인증서 발급에 필요한 정보를 담고있는 '인증 서명 요청' 파일(csr) 생성. Root CA 인증서는 자기 자신 인증으로 만들 수 있음.
8. 서버 인증서 만들고 자체 서명하기
openssl x509 -req -sha256 -days 999999 -in server.csr -CA rootca.crt -CAkey rootca.key -CAcreateserial -out server.crt
CA :
서명에 사용할 "CA" 인증서를 지정합니다. 존재하는 경우 이는 다음과 같이 "마이크로 CA"처럼 작동합니다. "CA" 인증서의 주체 이름은 새 인증서의 발급자 이름으로 배치되며, 그런 다음 아래에 설명된 대로 "CA" 키를 사용하여 서명됩니다.
이 옵션은 -key(또는 -signkey)와 함께 사용할 수 없습니다. 이 옵션은 일반적으로 CSR을 참조하는 -req 옵션과 결합됩니다. -req 옵션이 없으면 처음부터 인증서를 생성하는 -new 옵션이 제공되지 않는 한 입력은 기존 인증서여야 합니다.
CAkey
인증서에 서명할 CA 개인 키를 설정합니다. 개인 키는 -CA와 함께 제공된 인증서의 공개 키와 일치해야 합니다. 이 옵션이 제공되지 않으면 키가 -CA 입력에 있어야 합니다.
CAcreateserial
이 옵션을 사용하면 존재하지 않는 경우 CA 일련 번호 파일이 생성됩니다. 이 파일에는 일련 번호 "02"가 포함되고 서명되는 인증서의 일련 번호는 1입니다. -CA 옵션이 지정되고 일련 번호 파일이 존재하지 않으면 난수가 생성됩니다. 이것은 권장되는 방법입니다.
9. 서버 인증서 정보 확인하기
openssl x509 -in server.crt -text -noout
x509
X.509 Certificate Data Management.
이 명령은 다목적 인증서 처리 명령입니다. 인증서 정보를 인쇄하고, 인증서를 다양한 형식으로 변환하고, 인증서 신뢰 설정을 편집하고, 처음부터 인증서를 생성하거나 요청을 인증한 다음 자체 서명하거나 "마이크로 CA"처럼 서명하는 데 사용할 수 있습니다.
text
인증서를 텍스트 형식으로 인쇄합니다. 공개 키, 서명 알고리즘, 발급자 및 주체 이름, 일련 번호 존재하는 확장 및 신뢰 설정을 포함한 전체 세부 정보가 인쇄됩니다.
noout
이 옵션은 아래 옵션에서 요청한 인쇄 이외의 출력을 방지합니다.
10. 자체 서명된 루트 인증서를 개인 컴퓨터에 설치해서 서버 인증하기
11. 개인 키 cipher 변경
openssl rsa -in foo.pem -out foo_unencrypted.pem
rsa : RSA Keys 관련 명령 수행. 아웃 옵션에 따라 다양한 형태의 요소로 변환
in :
입력 파일 지정. 없으면, 표준입력이 지정됨. 키가 암호화 된 경우, 암호 구문을 입력하라는 메시지 표시됨
out :
키를 저장할 출력파일 지정. 없으면 표준 출력으로 지정됨. 암호 옵션이 설정되어있을 경우, 암호 입력 요청 메시지 표시. 입력파일명과 출력파일명은 달라야함.
-aes128, -aes192, -aes256, -aria128, -aria192, -aria256, -camellia128, -camellia192, -camellia256, -des, -des3, -idea
이 옵션들은 출력 전에, 개인키를, 지정 cipher로 암호화 함. 암호를 입력하라는 문구가 표시됨. cipher 옵션이 없으면, 암호 제거. 설정하면, 암호를 추가하거나 변경하기 위해 사용할 수 있음.
※※ (OCPP용) 클라이언트 인증서 작성 시,
subject 항목 설정할 때,
O(organizationName) RDN : 충전소 운영자 이름
CN(commonName) RDN : 충전소 Serial-Number
댓글 없음:
댓글 쓰기