Linux에서 자체 만든 단방향 인증서 구축 https 서버

3902 단어

앞말


https를 구축하는 데는 두 가지 방식이 있는데 단방향 인증과 양방향 인증으로 나뉜다.단방향 인증은 전송된 데이터가 암호화되었지만 클라이언트의 출처를 검사하지 않고 클라이언트만 서버 인증서를 검증한다.

단방향 인증서 생성


서버 개인 키를 만들고 RSA 비밀 키를 생성합니다.과정 중에 비밀번호를 입력하라고 요구할 것입니다. 입력한 비밀번호를 기억하세요.
ubuntu@ip-172-31-23-98:~$ openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
...................................................................................................................................................................+++
..+++
e is 65537 (0x10001)
Enter pass phrase for server.key:
140204033578648:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:823:You must type in 4 to 1023 characters
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
ubuntu@ip-172-31-23-98:~$ ls
cointown  lian12.sql  redis-4.0.11  redis-4.0.11.tar.gz  server.key  sms-service-0.0.1-SNAPSHOT.jar  white.test.conf  x.sql

암호와 관련된 인증서 요청을 생성하려면 이전에 입력한 암호를 입력하면 됩니다.
ubuntu@ip-172-31-23-98:~$ sudo openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
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]:cn
Locality Name (eg, city) []:beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:cn
Organizational Unit Name (eg, section) []:g
Common Name (e.g. server FQDN or YOUR name) []:yang
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:abcd
An optional company name []:cn
ubuntu@ip-172-31-23-98:~$ ls
cointown  lian12.sql  redis-4.0.11  redis-4.0.11.tar.gz  server.csr  server.key  sms-service-0.0.1-SNAPSHOT.jar  white.test.conf  x.sql

이 내용을 입력하면 서버가 생성됩니다.csr 파일, 그리고 비밀 키를 ssl 암호화
ubuntu@ip-172-31-23-98:~$ cp server.key server.key.org
ubuntu@ip-172-31-23-98:~$ ls
cointown    redis-4.0.11         server.csr  server.key.org                  white.test.conf
lian12.sql  redis-4.0.11.tar.gz  server.key  sms-service-0.0.1-SNAPSHOT.jar  x.sql

ubuntu@ip-172-31-23-98:~$ openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.org:
writing RSA key
ubuntu@ip-172-31-23-98:~$ ls
cointown    redis-4.0.11         server.csr  server.key.org                  white.test.conf
lian12.sql  redis-4.0.11.tar.gz  server.key  sms-service-0.0.1-SNAPSHOT.jar  x.sql

위의 비밀 키와 CSR을 사용하여 정식으로 서명
ubuntu@ip-172-31-23-98:~$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=cn/ST=cn/L=beijing/O=cn/OU=g/CN=yang/[email protected]
Getting Private key
ubuntu@ip-172-31-23-98:~$ ls
cointown    redis-4.0.11         server.crt  server.key      sms-service-0.0.1-SNAPSHOT.jar  x.sql
lian12.sql  redis-4.0.11.tar.gz  server.csr  server.key.org  white.test.conf


이렇게 하면 증서가 완성된다. 맞다. 증서를 합병해야 한다
ubuntu@ip-172-31-23-98:~$ cat server.key server.crt > server.pem
ubuntu@ip-172-31-23-98:~$ ls
cointown    redis-4.0.11         server.crt  server.key      server.pem                      white.test.conf
lian12.sql  redis-4.0.11.tar.gz  server.csr  server.key.org  sms-service-0.0.1-SNAPSHOT.jar  x.sql

nginx에 가서 사용할 수 있어요.
 ssl_certificate   cert/server.pem;
 ssl_certificate_key  cert/server.key;

주의: 이렇게 된 인증서는 csr를 브라우저에 가져와야 사용할 수 있습니다. 인증서를 브라우저에 가져오는 방법을 생략합니다.만약 내가 절차를 적어야 한다면, 메시지를 남겨 주십시오. 제가 다시 추가할 것입니다.

좋은 웹페이지 즐겨찾기