반응형
OpenSSL을 사용하여 자체 서명된 SSL/TLS 인증서를 생성하는 방법
자체 서명된(셀프 서명된) SSL/TLS 인증서를 생성하려면 OpenSSL을 사용할 수 있습니다.
1. CSR 및 키 생성
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out _wildcard_example_com.crt \
-keyout _wildcard_example_com.key \
-subj "/C=KR/ST=Seoul/L=Jongno-gu/O=SangChul Co., Ltd./OU=Infrastructure Team/CN=*.example.com"
- req : CSR (Certificate Signing Request)을 생성하는 OpenSSL 명령어입니다.
- newkey rsa:4096 : 4096비트 RSA 개인 키를 생성합니다.
- x509 : 셀프 서명된 인증서를 생성합니다.
- sha256 : SHA-256 해시 알고리즘을 사용합니다.
- days 3650 : 인증서의 유효 기간을 10년으로 설정합니다.
- nodes : 개인 키를 암호화하지 않습니다.
- out _wildcard_example_com.crt : 생성된 인증서 파일의 이름을 설정합니다.
- keyout _wildcard_example_com.key : 생성된 개인 키 파일의 이름을 설정합니다.
- subj : 서브젝트 필드를 지정하여 CSR에 내용을 추가합니다.
$ openssl req -newkey rsa:4096 \
> -x509 \
> -sha256 \
> -days 3650 \
> -nodes \
> -out _wildcard_example_com.crt \
> -keyout _wildcard_example_com.key \
> -subj "/C=KR/ST=Seoul/L=Jongno-gu/O=SangChul Co., Ltd./OU=Infrastructure Team/CN=*.example.com"
Generating a 4096 bit RSA private key
.............................................................................++
......................................................................++
writing new private key to '_wildcard_example_com.key'
-----
2. 암호화된 개인 키 생성
openssl genpkey -algorithm RSA -out _wildcard_example_com.key -aes256
- genpkey : 개인 키를 생성하는 OpenSSL 명령어입니다.
- algorithm RSA : RSA 알고리즘을 사용합니다.
- out _wildcard_example_com.key : 생성된 개인 키 파일의 이름을 설정합니다.
- aes256 : 256비트 AES 알고리즘을 사용하여 개인 키를 암호화합니다.
$ openssl genpkey -algorithm RSA -out _wildcard_example_com.key -aes256
.......................................++++++
..............++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
3. 암호화된 개인 키 확인
openssl rsa -in _wildcard_example_com.key -text
- rsa : RSA 개인 키를 다루는 OpenSSL 명령어입니다.
- -in _wildcard_example_com.key : 입력 파일로 지정된 암호화된 개인 키 파일의 내용을 출력합니다.
- -text : 개인 키의 텍스트 형식으로 표시합니다.
$ openssl rsa -in _wildcard_example_com.key -text
Enter pass phrase for _wildcard_example_com.key:
Private-Key: (1024 bit)
modulus:
00:bc:77:bd:41:24:a4:e9:90:8a:a9:c2:21:27:e4:
12:e1:c7:b4:1d:de:a8:56:8c:a2:4c:f9:e2:31:03:
6f:ed:57:16:13:9e:95:10:ef:76:87:b0:88:92:f0:
f2:85:c8:6e:5e:dc:22:e3:b3:43:de:8e:60:19:2f:
ff:46:42:3c:c2:fb:39:7e:e3:07:55:ed:cb:41:4b:
55:3b:bd:e8:38:32:94:75:0e:eb:ba:4e:dd:76:cf:
9e:ea:66:6e:b2:40:07:f6:e2:11:f6:09:44:97:76:
ea:1d:b1:ae:61:76:97:60:cf:48:73:be:fb:c6:48:
ed:bd:0e:e8:cd:ff:20:06:b5
publicExponent: 65537 (0x10001)
...
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQC8d71BJKTpkIqpwiEn5BLhx7Qd3qhWjKJM+eIxA2/tVxYTnpUQ
73aHsIiS8PKFyG5e3CLjs0PejmAZL/9GQjzC+zl+4wdV7ctBS1U7veg4MpR1Duu6
Tt12z57qZm6yQAf24hH2CUSXduodsa5hdpdgz0hzvvvGSO29DujN/yAGtQIDAQAB
AoGBAK6HbBkxaA5rLh26ip24VcwD9cZbdSSBI6OJHHArMLFnnigZCQ4f03Ighrkc
rFo7nAn4bc7TKZyl2FQ64HkdycllCZS5Vdb0E8nrSinAYpoholOV1J65jSDOo2gK
rAzeel6qOdPYg2kFEZOZbjvlLsBbI7GOAJq+eh07Z4sW2bYBAkEA9iaIyKI6j3Po
RqZIfpmOZ2TKt0JcyiqO7MqVimvF7DMTmamkQKbKOKUYVIX+lErdhXpK9XgS6cJg
LVj86wxT9QJBAMQCU3BKiAMBqyQq2ZcTxGR0ivNCl33zTp/ellEDqLdzaOlcpK+W
yOEwcSRbU9yCQzcGnuNwRvGT+W+TUNHH78ECQQDdircnpOOCA3c2RykOUNSbeFr/
b8ol5wH2WysWh4N+4EWu0sFTswpkyyrHwEXuYCdaoEPhBK45GEoJ5oLUZqcVAkBZ
PKnaLMSBgef1vmBz7Lbz+S8tkvq/h98a387VsXHFm5B+9gOwQVjRVSmdoMqsUM3j
Jmt+JqbV40Wjq5EXAQzBAkEAl1PHiANnUdwfqBkr5ZD86rtqii1Pinz+D3xxHXrk
wHURVgpunwDMvAzySSLVYfd70btTKr9P+SGGX8S+V/M82A==
-----END RSA PRIVATE KEY-----
728x90
4. 암호 없는 개인 키 생성
openssl rsa -in _wildcard_example_com.key -out nopassword_wildcard_example_com.key
- -out nopassword_wildcard_example_com.key : 암호가 없는 개인 키를 저장할 파일의 이름을 설정합니다.
$ openssl rsa -in _wildcard_example_com.key -out nopassword_wildcard_example_com.key
Enter pass phrase for _wildcard_example_com.key:
writing RSA key
5. 암호 없는 개인 키 확인
openssl rsa -in nopassword_wildcard_example_com.key -text
- 다시 한 번 암호 없는 개인 키 파일의 내용을 확인합니다.
$ openssl rsa -in nopassword_wildcard_example_com.key -text
Private-Key: (1024 bit)
modulus:
00:bc:77:bd:41:24:a4:e9:90:8a:a9:c2:21:27:e4:
12:e1:c7:b4:1d:de:a8:56:8c:a2:4c:f9:e2:31:03:
6f:ed:57:16:13:9e:95:10:ef:76:87:b0:88:92:f0:
f2:85:c8:6e:5e:dc:22:e3:b3:43:de:8e:60:19:2f:
ff:46:42:3c:c2:fb:39:7e:e3:07:55:ed:cb:41:4b:
55:3b:bd:e8:38:32:94:75:0e:eb:ba:4e:dd:76:cf:
9e:ea:66:6e:b2:40:07:f6:e2:11:f6:09:44:97:76:
ea:1d:b1:ae:61:76:97:60:cf:48:73:be:fb:c6:48:
ed:bd:0e:e8:cd:ff:20:06:b5
publicExponent: 65537 (0x10001)
...
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQC8d71BJKTpkIqpwiEn5BLhx7Qd3qhWjKJM+eIxA2/tVxYTnpUQ
73aHsIiS8PKFyG5e3CLjs0PejmAZL/9GQjzC+zl+4wdV7ctBS1U7veg4MpR1Duu6
Tt12z57qZm6yQAf24hH2CUSXduodsa5hdpdgz0hzvvvGSO29DujN/yAGtQIDAQAB
AoGBAK6HbBkxaA5rLh26ip24VcwD9cZbdSSBI6OJHHArMLFnnigZCQ4f03Ighrkc
rFo7nAn4bc7TKZyl2FQ64HkdycllCZS5Vdb0E8nrSinAYpoholOV1J65jSDOo2gK
rAzeel6qOdPYg2kFEZOZbjvlLsBbI7GOAJq+eh07Z4sW2bYBAkEA9iaIyKI6j3Po
RqZIfpmOZ2TKt0JcyiqO7MqVimvF7DMTmamkQKbKOKUYVIX+lErdhXpK9XgS6cJg
LVj86wxT9QJBAMQCU3BKiAMBqyQq2ZcTxGR0ivNCl33zTp/ellEDqLdzaOlcpK+W
yOEwcSRbU9yCQzcGnuNwRvGT+W+TUNHH78ECQQDdircnpOOCA3c2RykOUNSbeFr/
b8ol5wH2WysWh4N+4EWu0sFTswpkyyrHwEXuYCdaoEPhBK45GEoJ5oLUZqcVAkBZ
PKnaLMSBgef1vmBz7Lbz+S8tkvq/h98a387VsXHFm5B+9gOwQVjRVSmdoMqsUM3j
Jmt+JqbV40Wjq5EXAQzBAkEAl1PHiANnUdwfqBkr5ZD86rtqii1Pinz+D3xxHXrk
wHURVgpunwDMvAzySSLVYfd70btTKr9P+SGGX8S+V/M82A==
-----END RSA PRIVATE KEY-----
6. 인증서 정보 확인
openssl x509 -in _wildcard_example_com.crt -noout -subject -startdate -enddate
- x509 : X.509 형식의 인증서를 다루는 OpenSSL 명령어입니다.
- -in _wildcard_example_com.crt : 입력 파일로 지정된 인증서 파일의 내용을 출력합니다.
- -noout : 인증서 내용을 출력하지 않고, 주어진 옵션만 출력합니다.
- -subject : 서브젝트 정보를 출력합니다.
- -startdate : 인증서의 시작일을 출력합니다.
- -enddate : 인증서의 만료일을 출력합니다.
$ openssl x509 -in _wildcard_example_com.crt -noout -subject -startdate -enddate
subject= /C=KR/ST=Seoul/L=Jongno-gu/O=SangChul Co., Ltd./OU=Infrastructure Team/CN=*.example.com
notBefore=Jan 18 06:10:51 2024 GMT
notAfter=Jan 15 06:10:51 2034 GMT
728x90
반응형
'리눅스' 카테고리의 다른 글
smem 명령어 (0) | 2024.01.19 |
---|---|
PFX 파일을 생성하는 방법 (0) | 2024.01.18 |
fio 도구를 사용하여 디스크 I/O 성능을 측정하는 방법 (0) | 2024.01.18 |
SSL 인증서를 PFX에서 JKS로 변환하는 방법 (0) | 2024.01.18 |
SSH 호스트 키가 변경되었을 때 발생하는 경고 메시지를 해결하는 방법 (0) | 2024.01.16 |