openssl 인증서 생성

8205 단어 OpenSSL
openssl을 다운로드하여 설치하고/bin/아래로 들어가 명령을 실행합니다. (ssl 디렉터리에 있는openssl.cnf를 bin 디렉터리로 복사합니다.)
1. 먼저 서버 측의 개인 키(key 파일)를 생성합니다.

openssl genrsa -des3 -out server.key 1024

[root@airwaySSL openssl]# cd ssl/

[root@airwaySSL ssl]# pwd

/home/openssl/ssl

[root@airwaySSL ssl]# ls

certs  man  misc  openssl.cnf  private  server.csr  server.key

실행할 때 비밀번호를 입력하라고 알립니다. 이 비밀번호는 키 파일을 암호화하는 데 사용됩니다. (파라자des3는 암호화 알고리즘을 가리키며, 물론 안전하다고 생각하는 다른 알고리즘을 선택할 수도 있습니다.)앞으로 이 파일을 읽을 때마다 (openssl에서 제공하는 명령이나 API) 구령을 입력해야 합니다.불편하면 이 구령을 제거할 수도 있지만 다른 보호 조치를 취해야 합니다!
키 파일 구령 제거 명령:

openssl rsa -in server.key -out server.key

2.openssl req -new -key server.key -out server.csr -config openssl.cnf

[root@airwaySSL bin]# openssl req -new -key server.key -out server.csr -config openssl.cnf

Enter pass phrase for server.key:12345

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]:CN

State or Province Name (full name) [Some-State]:china

Locality Name (eg, city) []:wuhan

Organization Name (eg, company) [Internet Widgits Pty Ltd]:airway

Organizational Unit Name (eg, section) []:airway

Common Name (eg, YOUR name) []:airway

Email Address []:

 

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

 

Certificate Signing Request(CSR)를 생성하고 생성된 csr 파일을 CA에 서명한 후 서비스 측의 인증서를 생성합니다.화면에 알림이 있습니다. 지시에 따라 한 걸음 한 걸음 요구하는 개인 정보를 입력하면 됩니다.
3. 클라이언트에게도 같은 명령으로 key 및 csr 파일을 생성합니다.

openssl genrsa -des3 -out client.key 1024

 

Generating RSA private key, 1024 bit long modulus

...........++++++

..++++++

e is 65537 (0x10001)

Enter pass phrase for client.key:12345

Verifying - Enter pass phrase for client.key:12345

 

openssl req -new -key client.key -out client.csr -config openssl.cnf

 

[root@airwaySSL bin]# openssl req -new -key client.key -out client.csr -config openssl.cnf

Enter pass phrase for client.key:12345

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]:cn

State or Province Name (full name) [Some-State]:china

Locality Name (eg, city) []:wuhan

Organization Name (eg, company) [Internet Widgits Pty Ltd]:airway

Organizational Unit Name (eg, section) []:airway

Common Name (eg, YOUR name) []:airway

Email Address []:

 

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

 

4. CSR 파일에는 인증서가 작성되기 위해 CA 서명이 있어야 합니다.이 파일을verisign 등에 보내서 검증할 수 있습니다. 많은 돈을 내야 하는데 왜 스스로 CA를 하지 않습니까?

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

 

[root@airwaySSL bin]# openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

Generating a 1024 bit RSA private key

...++++++

...................++++++

writing new private key to 'ca.key'

Enter PEM pass phrase:12345

Verifying - Enter PEM pass phrase:

-----

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]:CN

State or Province Name (full name) [Some-State]:china

Locality Name (eg, city) []:wuhan

Organization Name (eg, company) [Internet Widgits Pty Ltd]:airway

Organizational Unit Name (eg, section) []:airway

Common Name (eg, YOUR name) []:airway

Email Address []:

다음 작업을 계속하기 전에openssl을 엽니다.conf 파일을 열고dir 경로를 보고dir =/home/openssl/bin/demoCA/로 수정합니다. 그렇지 않으면 다음 단계에서 경로를 찾을 수 없음을 알립니다.
CA 디렉토리 구조를 직접 생성합니다.
 
 [weigw@TEST bin]$ mkdir ./demoCA
  [weigw@TEST bin]$ mkdir demoCA/newcerts
  
빈 파일을 만들려면 다음과 같이 하십시오.

  [weigw@TEST bin]$ vi demoCA/index.txt
  
파일에 쓰기 01:

  [weigw@TEST bin]$ vi demoCA/serial

5. 생성된 CA의 인증서로 방금 생성된 서버입니다.csr,client.csr 파일 서명:

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

 

[root@airwaySSL bin]# openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

Using configuration from openssl.cnf

Enter pass phrase for ca.key:

Check that the request matches the signature

Signature ok

Certificate Details:

        Serial Number: 1 (0x1)

        Validity

            Not Before: Feb 26 04:15:02 2009 GMT

            Not After : Feb 26 04:15:02 2010 GMT

        Subject:

            countryName               = CN

            stateOrProvinceName       = china

            organizationName          = airway

            organizationalUnitName    = airway

            commonName                = airway

        X509v3 extensions:

            X509v3 Basic Constraints: 

            CA:FALSE

            Netscape Comment: 

            OpenSSL Generated Certificate

            X509v3 Subject Key Identifier: 

            30:70:D2:EB:9B:73:AE:7B:0E:8E:F6:94:33:7C:53:5B:EF:93:FC:38

            X509v3 Authority Key Identifier: 

            keyid:DB:D6:83:BB:7F:28:C2:A9:40:6A:D8:32:FC:01:E0:5C:48:27:51:19

 

Certificate is to be certified until Feb 26 04:15:02 2010 GMT (365 days)

Sign the certificate? [y/n]:y

 

 

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

 

openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

 

[root@airwaySSL bin]# openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

Using configuration from openssl.cnf

Enter pass phrase for ca.key:

Check that the request matches the signature

Signature ok

The countryName field needed to be the same in the

CA certificate (CN) and the request (cn)

지금 우리가 필요로 하는 모든 파일이 생성되었다.
별도:
클라이언트가 사용하는 파일은:ca.crt,client.crt,client.key
서버에서 사용하는 파일은:ca.crt, 서버입니다.crt,server.key

좋은 웹페이지 즐겨찾기