openssl创建证书和密钥

Mar*_*k X 5 openssl

[OpenSSL v1.1.0f]

我正在使用以下命令创建自签名证书,仅用于测试目的:

$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 10000 -nodes
Run Code Online (Sandbox Code Playgroud)

但是我得到这样的消息:

Can't open /usr/local/ssl/openssl.cnf for reading, No such file or directory
140480609138432:error:02001002:system library:fopen:No such file or directory:crypto/bio/bss_file.c:74:fopen('/usr/local/ssl/openssl.cnf','r')
140480609138432:error:2006D080:BIO routines:BIO_new_file:no such file:crypto/bio/bss_file.c:81:
Generating a 4096 bit RSA private key
..................................++
.................................................................................................................................................................................................................++
writing new private key to 'key.pem'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
140480609138432:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or environment variable:crypto/conf/conf_lib.c:272:
Run Code Online (Sandbox Code Playgroud)

我该怎么解决?

Mar*_*ein 5

通常,openssl将使用默认配置,但似乎您没有在正确的位置放置它。您还可以将配置文件作为命令行参数传递。注意-config选项。

openssl req -x509 -config openssl.cnf -newkey rsa:4096 -keyout key.pem -out cert.pem -days 10000 -nodes
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。openssl.cnf 文件至少应该包含什么? (2认同)
  • 最好的信息来源应该在[openssl doc](https://www.openssl.org/docs/man1.1.0/apps/)。您也可以从github直接下载[openssl.cnf](https://github.com/openssl/openssl/blob/master/apps/openssl.cnf)-这可能是最简单的方法,因为您只需要测试即可。 (2认同)