使用OpenSSL创建证书签名请求(CSR)卡住了。

8
我将创建一个批处理文件来自动化创建自签名证书。参考以下教程:http://www.xenocafe.com/tutorials/linux/centos/openssl/self_signed_certificates/index.php 我编写了如下脚本:
@echo off

REM This script takes name passed in and generates private and public keys using OpenSSL
REM First parameter expects name
IF "%1"=="" GOTO EXIT

ECHO Generating PRIVATE key ------------------------------
openssl genrsa -des3 -out %1.key 1024

ECHO Creating certificate sign request (CSR) -------------
openssl req -key %1.key -out %1.csr

ECHO Signing CSR 100 years -------------------------------
openssl x509 -req -days 36500 -in %1.csr -signkey %1.key -out %1.crt

ECHO Create a kopy of password-protected key -------------
cp %1.key %1.key.secure

ECHO Remove password from private key --------------------
openssl rsa -in %1.key.secure -out %1.key

想要获得无密码的私钥和用于分发的公钥。我在管理员权限下运行CMD提示符,以下是输出:

enter image description here

没有任何提示,也不要求国家代码等信息。

3个回答

32

我在6个月前遇到了同样的问题,当时在Windows 7上使用GitBash。搜索了数小时后,我找到了解决方法:

我在6个月前使用Windows 7中的GitBash时,遇到了同样的问题。经过数小时的搜索,我找到了以下解决方法:

winpty openssl genrsa -out ../private.pem -aes256 4096

如果有帮助到任何人,请告诉我。


3
这对我在 Windows Server 2012 R2 上使用 GitBash 很有帮助。 - Mike
对我来说,将Bash运行在Windows控制台中而不是Mintty也很有帮助。 - max630
在我的GitBash中,添加前缀winpty修复了所有挂起的openssl命令! - Holger Ludvigsen
同样的问题在Win10和最新的“GitBash”上出现,感谢您的提示! - khelkun

7

它应该有-new参数:

ECHO Creating certificate sign request (CSR) -------------
openssl req -new -key %1.key -out %1.csr

0
将winpty放在我的生成命令前面,阻止了它的挂起。
winpty openssl genrsa -aes256 -out clientprivate.key 2048

2
这不就是Zuhayer Tahir在2017年说的吗?如果你要添加一些现有答案中没有的额外信息,请编辑以使其更清晰,否则你可能会被投票降低。 - Matthew Strawbridge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接