OpenSSL 로 인증서 생 성

5258 단어 OpenSSL
Step 1. Create key (password protected)
openssl genrsa -out prvtkey.pem 1024/2038 (with out password protected)
openssl genrsa -des3 -out prvtkey.pem 1024/2048 (password protected)

1024/2048
Step 2. Create certification request

openssl req -new -key prvtkey.pem -out cert.csr
openssl req-new-nodes-key prvtkey.pem-out cert.csr 이 명령 은 인증서 요청 을 생 성 합 니 다.물론 앞에서 생 성 된 키 prvtkey.pem 파일 을 사용 하면 새 파일 cert.csr,즉 인증서 요청 파일 을 생 성 합 니 다.이 문 서 를 가지 고 디지털 인증서 발급 기구(즉 CA)에 가서 디지털 인증 서 를 신청 할 수 있 습 니 다.CA 는 새로운 파일 cacert.pem 을 줄 것 입 니 다.그것 이 바로 디지털 인증서 입 니 다.Step 3: Send certificate request to Certification Authority (CA)
스스로 테스트 를 한다 면,증서 의 신청 기관 과 발급 기관 은 모두 자신 이다.다음 명령 으로 인증 서 를 생 성 할 수 있 습 니 다:openssl req-new-x509-key prvtkey.pem-out cacert.pem-days 1095 이 명령 은 위 에서 생 성 된 키 privkey.pem 으로 디지털 인증서 cacert.pem 을 생 성 합 니 다.
cacert.pem 생 성 과정 은"OpenSSL 이 자신의 CA 를 만 듭 니 다"를 참조 하 십시오.
있다
privkey.pem
화해시키다
cacert.pem
파일 을 만 든 후에 자신의 프로그램 에서 사용 할 수 있 습 니 다.예 를 들 어 암호 화 된 통신 서버 를 만 드 는 것 입 니 다.
-------------OpenSSL
자신의
CA
(1)환경 준비
우선 발급 한 인증서 와 CRL(Certificate Revoke List)을 포함 하여 CA 파일 을 설치 할 디 렉 터 리 를 준비 해 야 합 니 다.디 렉 터 리/var/MyCA 를 선택 하 십시오.
그리고 저 희 는/var/MyCA 에서 두 개의 디 렉 터 리 를 만 듭 니 다.certs 는 저희 CA 에서 발급 한 모든 인증서 의 사본 을 저장 합 니 다.private 에서 CA 인증 서 를 저장 하 는 개인 열쇠 입 니 다.
열 쇠 를 만 드 는 것 외 에 우리 의 CA 시스템 에 세 개의 파일 을 만들어 야 합 니 다.첫 번 째 파일 은 마지막 으로 발급 한 인증서 의 시리 얼 번 호 를 추적 하 는 데 사 용 됩 니 다.serial 이 라 고 이름 을 붙 여 01 로 초기 화 합 니 다.두 번 째 파일 은 인증 서 를 추적 하기 위해 정렬 된 데이터베이스 입 니 다.우 리 는 그것 을 index.txt 라 고 명명 하고 파일 내용 은 비어 있 습 니 다.
$ mkdir /var/MyCA$ cd /var/MyCA$ mkdir certs private$ chmod g-rwx,o-rwx private$ echo "01" > serial$ touch index.txt
세 번 째 파일 은 OpenSSL 설정 파일 입 니 다.만 들 기 가 까다 롭 습 니 다.예 는 다음 과 같다.
$ touch openssl.cnf
파일 내용 은 다음 과 같 습 니 다.
[ ca ]default_ca = myca
[ myca ]dir = /var/MyCAcertificate = $dir/cacert.pemdatabase = $dir/index.txtnew_certs_dir = $dir/certsprivate_key = $dir/private/cakey.pemserial = $dir/serial
default_crl_days= 7default_days = 365default_md = md5
policy = myca_policyx509_extensions = certificate_extensions
[ myca_policy ]commonName = suppliedstateOrProvinceName = suppliedcountryName = suppliedemailAddress = suppliedorganizationName= suppliedorganizationalUnitName = optional
[ certificate_extensions ]basicConstraints= CA:false
OpenSSL 프로필 의 경 로 를 알려 야 합 니 다.목적 을 달성 할 수 있 는 두 가지 방법 이 있 습 니 다.config 명령 옵션 을 통 해.환경 변수 로 OPENSLCONF。여기 서 우 리 는 환경 변수의 방식 을 선택한다.
$ OPENSSL_CONF=/var/MyCA/openssl.cnf"$ export OPENSSL_CONF
(2)루트 인증서 생 성(루트 인증서)
인증서 에 서명 할 인증서 가 필요 합 니 다.이 인증 서 는 다른 CA 에서 가 져 오 거나 서명 한 루트 인증 서 를 가 져 올 수 있 습 니 다.여기에 서명 한 루트 인증 서 를 만 듭 니 다.
우선 설정 파일 에 정 보 를 추가 해 야 합 니 다.다음 과 같이 절 명 은 명령 행 도구 의 명령 req 와 같 습 니 다.명령 행 에 입력 하 는 것 이 아니 라 필요 한 모든 정 보 를 설정 에 기록 합 니 다.이것 은 유일 하 게 X.509v 3 확장 방식 을 지정 하고 루트 인증 서 를 만 드 는 방법 에 대해 서도 명확 하 게 파악 할 수 있 습 니 다.
[ req ]default_bits = 2048default_keyfile = /var/MyCA/private/cakey.pemdefault_md = md5prompt = nodistinguished_name = root_ca_distinguished_namex509_extensions = root_ca_extensions[ root_ca_distinguished_name ]commonName = My Test CAstateOrProvinceName = HZcountryName = CNemailAddress = [email protected] organizationName = Root Certification Authority[ root_ca_extensions ]basicConstraints = CA:true
모든 것 이 준비 되 어 있 으 니 루트 인증 서 를 만 들 수 있 습 니 다.환경 변수 설정 에 주의 하 세 요 OPENSLCONF。
$ openssl req -x509 -newkey rsa -out cacert.pem -outform PEM -days 356
주:"-days 356"제어 유효기간 은 365 일 이 며,기본 값 은 30 일 입 니 다.
우리 가 만 든 파일 을 검증 해 보 세 요.
$ openssl x509 -in cacert.pem -text -noout
(3)고객 에 게 인증서 발급
고객 에 게 증 서 를 발급 하기 전에 고객 이 인증서 의 기본 정 보 를 제공 해 야 한다.터미널 창 을 따로 엽 니 다.기본 OpenSSL 프로필 을 사용 합 니 다.(이전 OPEnsSL 을 사용 하지 마 십시오.CONF 가 우 리 를 방해 합 니 다.그 설정 은 루트 인증 서 를 만 드 는 데 사 용 됩 니 다.)
명령 은 루트 인증 서 를 만 드 는 것 과 유사 합 니 다.모두 req 이지 만 추가 정 보 를 제공 해 야 합 니 다.다음 과 같다.
$ openssl req -newkey rsa:1024 -keyout testkey.pem -keyform PEM -out testreq.pem -outform PEM
첫 번 째 암 호 는 비밀 키 testky.pem 을 암호 화 하 는 데 사 용 됩 니 다.두 번 째 암 호 는 보통 OpenSSL 에서 무시 합 니 다.결 과 는 두 개의 파일 을 생 성 합 니 다:testkey.pem,개인 열쇠;testreq.pem,요청 정보,공공 열 쇠 를 포함 합 니 다.
testreq.pem 에 어떤 정보 가 있 는 지 볼 까요?
$ openssl req -in testreq.pem -text -noout
이제 testreq.pem 을 우리 의 CA 생 성 인증서 에 제출 할 수 있 습 니 다.편 의 를 위해 서,우 리 는 testreq.pem 이/var/MyCA/private/에 있다 고 가정 합 니 다.
$ openssl ca -in testreq.pem
세 번 의 힌트 가 있 습 니 다.한 번 은 CA 의 개인 열쇠 비밀 번 호 를 묻 는 것 입 니 다.두 번 은 확인 입 니 다.출력 결 과 는 고객 에 게 발급 한 인증서 입 니 다.batch 옵션 을 통 해 명령 알림 을 취소 할 수 있 습 니 다.notext 옵션 을 통 해 인증서 의 출력 을 취소 할 수 있 습 니 다.또한 여러 고객 에 게 인증 서 를 한 번 에 발급 할 수 있 습 니 다.방법 은 infiles 옵션 으로 in 옵션 을 대체 하 는 것 입 니 다.그러나 이 옵션 은 마지막 에 두 어야 합 니 다.이후 의 모든 문자 가 파일 이름 목록 으로 처리 되 기 때 문 입 니 다.
생 성 된 인증 서 는 certs 디 렉 터 리 에 놓 여 있 으 며,index.txt 와 serial 의 내용 이 모두 바 뀌 었 습 니 다.

좋은 웹페이지 즐겨찾기