첫째-암호를 제공하지 않으면 어떻게됩니까? 일종의 의사 임의 문구가 사용됩니까? 난 그냥 평범한 해커들을 막을 수있는 “충분한”무언가를 찾고있다.
둘째-명령 줄에서 암호를 제공하여 명령 줄에서 키 쌍을 어떻게 생성합니까?
나는 마침내이 명령을 사용하여 작동하게되었고, 일반적으로 사용하기에 안전하지 않은 것으로 간주되는 exec ()를 사용하여 파일에 PassPhrase를 제공하는 것이 좋습니다. PHP가 내 PC에서만 실행될 것이라고 확신하므로이 위험을 감수 할 수 있습니다 (Windows를 실행하고 PS 명령이 없음).
openssl genrsa -aes128 -passout pass:foobar -out privkey.pem 2048
openssl rsa -in privkey.pem -passin pass:foobar -pubout -out privkey.pub
@caf 덕분에 많은 사람이 없었다면 이것이 불가능했을 것입니다.
단 한 가지 후회합니다. 아무리 Google을 사용해도 아무도 openssl_pkey_new()
Windows에서 Xampp로 작업 할 수없는 것 같습니다 ( 키 쌍을 생성하는 적절한 방법).
답변
암호를 사용하지 않으면 개인 키가 대칭 암호로 암호화되지 않고 완전히 보호되지 않은 상태로 출력됩니다.
다음과 같은 호출을 사용하여 명령 줄에 암호를 제공하여 키 쌍을 생성 할 수 있습니다 (이 경우 암호는 foobar
).
openssl genrsa -aes128 -passout pass:foobar 3072
그러나 명령 줄 인수는 일반적으로 모든 프로세스에서 볼 수 있기 때문에 당시 컴퓨터에서 실행중인 다른 프로세스에서이 암호를 가져올 수 있습니다.
더 나은 대안은 파일 권한으로 보호되는 임시 파일에 암호를 쓰고 다음을 지정하는 것입니다.
openssl genrsa -aes128 -passout file:passphrase.txt 3072
또는 표준 입력에 암호를 제공하십시오.
openssl genrsa -aes128 -passout stdin 3072
file:
옵션 또는 파일 설명자 와 함께 명명 된 파이프를 사용할 수도 있습니다 .
그런 다음 일치하는 공개 키를 얻으려면 을 사용하여 개인 키를 암호화하는 데 사용 된 openssl rsa
것과 동일한 암호를 -passin
매개 변수 와 함께 제공 해야합니다 .
openssl rsa -passin file:passphrase.txt -pubout
(이는 표준 입력에서 암호화 된 개인 키를 예상합니다. 대신를 사용하여 파일에서 읽을 수 있습니다 -in <file>
.)
암호로 암호화 된 개인 키 쌍을 사용하여 파일에 3072 비트 개인 및 공개 키 쌍을 생성하는 예 foobar
:
openssl genrsa -aes128 -passout pass:foobar -out privkey.pem 3072
openssl rsa -in privkey.pem -passin pass:foobar -pubout -out privkey.pub
답변
genrsa
되었습니다 에 의해 대체genpkey
가 암호를 묻는 메시지가 표시됩니다 터미널에서 수동으로 실행할 때 및 :
openssl genpkey -aes-256-cbc -algorithm RSA -out /etc/ssl/private/key.pem -pkeyopt rsa_keygen_bits:4096
그러나 스크립트에서 실행할 때 명령은 암호를 요구하지 않으므로 암호가 프로세스로 표시되지 않도록하려면 shell
스크립트 의 함수를 사용하십시오 .
get_passwd() {
local passwd=
echo -ne "Enter passwd for private key: ? "; read -s passwd
openssl genpkey -aes-256-cbc -pass pass:$passwd -algorithm RSA -out $PRIV_KEY -pkeyopt rsa_keygen_bits:$PRIV_KEYSIZE
}