利用C#调用cmd执行OpenSSL申请私钥
问题
在利用OpenSSL申请私钥的时候,我遇到一个问题:在cmd窗口中手动输入执行指令
openssl.exe genrsa -aes256 -out C:\\test\\key.pem 4096
之后会有一个等待输入密码和验证密码的过程,但是在利用C#调用进程执行指令的时候并不能捕获到此输入的标志
解决
解决1:
openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [numbits]
openssl的使用参数:a.pass:password :password表示传递的明文密码 在原有指令上加上此参数即可省去密码设置和验证的步骤,实现如下
openssl.exe genrsa -aes256 -passout pass:123456 -out C:\\test\\key.pem 4096
解决2:
写一个python脚本来执行这一步动作
import wexpect
cmd = "C:\\OpenSSL\\bin\\openssl.exe genrsa -aes256 -out {0}\\key.pem 4096".format(target_path)
child = wexpect.spawn(cmd)
print('Start apply key.pem')
child.expect('phrase')
time.sleep(1)
print(child.before,end='')
print(child.after,end='')
child.sendline(password)
child.expect('phrase')
time.sleep(1)
print(child.before,end='')
print(child.after,end='')
child.sendline(password)
print(child.before,end='')
print()
(人懒,没有截完整的,但是可以借鉴)

浙公网安备 33010602011771号