본문 바로가기

리눅스

SSL 인증서의 개인키에 설정된 비밀번호를 제거하는 방법

728x90

SSL 인증서의 개인키에 설정된 비밀번호를 제거하는 방법

1. OpenSSL을 사용하여 SSL 인증서(crt)와 개인 키(key)를 생성하는 방법

openssl req -subj '/CN=sangchul.kr/O=Infrastructure Team/C=KR' -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout node1.key -out node1.crt
$ openssl req -subj '/CN=sangchul.kr/O=Infrastructure Team/C=KR' -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout node1.key -out node1.crt
...+.................+...+.......+..+......+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+.+.....+......+.........+.+.....+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+...........+....+..+.............+..+..................+.+.....+....+.....+.......+...............+........+......+.........+....+...+..+............+...+...+...+..........+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...+.....+....+.....+.............+..+.+.....+.......+..+.+..+...+............+......+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+......+.+...+.....+.+...........+.......+...........+....+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+...............+..+....+...........+....+.........+..+......+.......+...+..+..........+...+...+.....+.+.....+...+.+..+....+..................+...........+.......+..............+..........+...+......+......+...+..+...+.+.....+.+.....+....+..+.......+........+........................+......+............+.+..+....+...............+........+.+...........+....+..+..........+...............+.....+...+......+.+...+..+....+.........+..+...+....+.....+.+..+...+.........+......+.......+..+...+...+.+.....+...+.............+.....+...+.........+...+............+.+..+............+...+.............+...........+...+.+..+...+.......+.....+...+.+.....+.+........+....+.....+.......+...+.....+...+........................+.+..+.+.....+.+.....+....+.....+....+.....+..........+..+.+.....+.......+............+..........................+.......+..+.........+......+.............+........+...+......+.............+......+......+...+........+.......+...+.....+...+......+.+.........+........+...+....+...+..+.+..+......+.+......+...+...........+.+..+..........+.....+.......+......+.....+...+.........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
$ ls
node1.crt  node1.key

자체 서명된 개인 키와 SSL 인증서 생성하는 방법

더보기

1. 개인 키(Private Key) 생성

openssl genpkey -algorithm RSA -out [key_file].key

[key_file]은 생성할 개인 키 파일의 경로와 이름을 나타냅니다. 실행하면 OpenSSL은 RSA 알고리즘을 사용하여 개인 키를 생성하고 지정한 파일에 저장합니다.

2. SSL 인증서 서명 요청(Certificate Signing Request, CSR) 생성

openssl req -new -key [key_file].key -out [csr_file].csr

[key_file]은 생성한 개인 키 파일의 경로와 이름을, [csr_file]은 생성할 CSR 파일의 경로와 이름을 나타냅니다. 실행하면 OpenSSL은 개인 키와 함께 인증서 서명 요청을 생성하고 지정한 파일에 저장합니다. CSR은 인증 기관에 제출하여 인증서를 발급받을 때 사용됩니다.

3. 자체 서명된 SSL 인증서 생성

openssl req -x509 -sha256 -days 365 -key [key_file].key -in [csr_file].csr -out [cert_file].crt

[key_file]은 생성한 개인 키 파일의 경로와 이름을, [csr_file]은 생성한 CSR 파일의 경로와 이름을, [cert_file]은 생성할 SSL 인증서 파일의 경로와 이름을 나타냅니다. 실행하면 OpenSSL은 개인 키와 CSR을 사용하여 자체 서명된 SSL 인증서를 생성하고 지정한 파일에 저장합니다. -days 옵션을 사용하여 인증서의 유효 기간을 지정할 수 있습니다.

SSL 인증서의 개인키 비밀번호를 추가, 확인, 제거, 변경하는 방법

2. SSL 인증서 개인키에 비밀번호 추가(비밀번호 : P@ssw0rd)

openssl rsa -des3 -in [private_key_file] -out [output_file]

[private_key_file]은 비밀번호가 없는 개인키 파일의 경로와 파일 이름을 나타내며, [output_file]은 비밀번호가 추가된 개인키를 저장할 파일의 경로와 파일 이름을 나타냅니다. 실행할 때 OpenSSL은 비밀번호를 입력하라는 프롬프트를 표시할 것입니다. 해당 비밀번호를 입력하고 추가된 개인키 파일을 생성합니다.

openssl rsa -in node1.key -passout pass:'P@ssw0rd' -out node1.key -des3
$ openssl rsa -in node1.key -passout pass:'P@ssw0rd' -out node1.key -des3
writing RSA key
728x90

 

3. SSL 인증서 개인키의 비밀번호 확인(검증)

openssl rsa -in [private_key_file] -check

[private_key_file]은 비밀번호가 설정된 개인키 파일의 경로와 파일 이름을 나타냅니다. 실행하면 OpenSSL은 해당 개인키의 비밀번호 상태를 확인합니다.

openssl rsa -in node1.key
$ openssl rsa -in node1.key
Enter pass phrase for node1.key:
writing RSA key
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYS0CQGI33vR/w
HHtL4c0ABuK+zwRauAJyu6CJrBjA2QHEyUIrqoNtsHoSd/ogUfdqztQJb2H6tLGg
Eqz3yBEVaQ1S5J6WRVlgn5laGGh+ST36JBc8MR4hQ3dZsxPD7+GiiMmxh5cz91WH
VgsvS/ovcYsoyH23+hcUNfP2U62yPqB0DDZCERAyEuEUGbIST12TGHHEGfrT+nG7
zp7HNSni7tUcuiI2YB/kY6SI9qY1lFFm/6vJb7oBqwN7J4zHP6XVIYLcY5vjieLF
yGqwrBgRQALGHM0XI1N7dvi0alChtrn0lEN7ASOfqU+/ucu5Vucvo0pIGRNBVIMj
TQShbB73AgMBAAECggEAArG1RSuOdnvcQ6ZnLBkiROd7uDq7PXy18xiT4Fh3b8zZ
hnT8plntDIG6k4j7tvQDwUiAQE8rM5nqmH7YZAxm7L2ulSNp4kn3hLTtjmoSwHfz
FgQ7EdyJboqjmEdwbewKrcvxueIMJ8aN7INNh7JKPysKkQsmSGi3aYtegD6nQZAb
mD/Mo19C31q5a/bPx5t/gnIK8lPCi17vcql1e8DVyujFPnQ+yWuanOXVdu5/wB6i
k8LjhI0LkhL7ORxljFVRN+3qZmQTrWmD/b7QaUGWXfSPvsB2Dx5qxYOdvX0o5jho
6JVXdSuIfICKYKfNwFwBl9WDtMLgOM0kLQT3Br280QKBgQD+a3kZ7jIgUdwI/cHw
aWT8CbAHkJ3IpscprJRn8vE/i9cGGgsWH49ZMO8tIJCo9IbiVQPk+DV95/EDkc+9
noWd5r/szrXQtzNv8vBYiA4KMLU+i2fy1wvIZEP5ce/OB1CTXhEiOX/IVvn8Vxpv
UCaEr51uPXEA8jRL1jbhphZlSQKBgQDZoyi7X0vjPlC721A0uSKv9CvfRBfilhrg
stmUof1k0+/vCBIRhnAtghR/HLpyWHONeCy2/+GoW9O52IcqL+CI85DWCSOUjvSw
T7eDIt5a9NgBYxiIAq/G556wuQy730skFNBDEYcb7Rsi8tyyzt7dRXNzASuu5Tmf
40FmFEmiPwKBgBz02HSmEphxGK0BTKhzJmY1KA7EW+DxcmuA0+c81E5aOR/dqPNc
pjENi7tEIJLKOevapzXRNi1dT6YLW2yGdUiycZefMzxNDZKpQMeivI5WWtqCfVM7
PIETQFVMrXFyja4oH6UYjD2eAJfCxiRzJ98kKbPZVFo6Ns+G0vo9sADZAoGBAIl5
zSL/AXrcRDdGRBXp1IV9IbF42/Wfh/7kOxjucpgcYHWHjZJQb8/vWW8qAIR2Zxe4
D9bRMAQfbVD5+/ekIpuf75+kSjtvShWNZYiKoBaoj0HhDP/tYoesi8tqOSb72AVE
uIGFMulrDzc2Xj78+j6fvlupI6To20uqTAdlTVYVAoGAD5CkAMuGje4T8aRBurh1
++RhBHzKY9s2tF5HQ+PkxuwoSDk7attbSxKZYsNTvdz+z/pQ/FkODcv51GZfwDcD
Id5Z5TzEdOQWIs0ycU9n7/16xapkbGq23g8Ys4SZCUFkYqmdinUJFJPZpaOFZlgp
MEvSupLGzA+18TNhr8imEZQ=
-----END PRIVATE KEY-----

 

4. SSL 인증서 개인키의 비밀번호 제거

openssl rsa -in [private_key_file] -out [output_file]

[private_key_file]은 비밀번호가 설정된 개인키 파일의 경로와 파일 이름을 나타내며, [output_file]은 비밀번호가 제거된 개인키를 저장할 파일의 경로와 파일 이름을 나타냅니다. 실행할 때 OpenSSL은 비밀번호를 입력하라는 프롬프트를 표시할 것입니다. 해당 비밀번호를 입력하고 제거된 개인키 파일을 생성합니다.

openssl rsa -in node1.key -out nopassword-node1.key
$ openssl rsa -in node1.key -out nopassword-node1.key
Enter pass phrase for node1.key:
writing RSA key

 

5. SSL 인증서 개인키의 비밀번호 변경

openssl rsa -in [private_key_file] -out [output_file]

[private_key_file]은 비밀번호가 설정된 개인키 파일의 경로와 파일 이름을 나타내며, [output_file]은 변경된 비밀번호가 적용된 개인키를 저장할 파일의 경로와 파일 이름을 나타냅니다. 실행할 때 OpenSSL은 기존 비밀번호와 새 비밀번호를 입력하라는 프롬프트를 표시할 것입니다. 올바른 기존 비밀번호와 새 비밀번호를 입력하고 변경된 개인키 파일을 생성합니다.

  • node1.key 비밀번호 입력 : P@ssw0rd
  • 변경할 비밀번호 입력 : changepassword1!
openssl rsa -des3 -in node1.key -out changepassword-node1.key
$ openssl rsa -des3 -in node1.key -out changepassword-node1.key
Enter pass phrase for node1.key:
writing RSA key
Enter pass phrase:
Verifying - Enter pass phrase:

 

참고URL

- 사설인증서(SSL) 생성 : https://scbyun.com/835

 

728x90