谁能告诉我从。pem文件中提取/转换证书.crt和私钥.key文件的正确方法/命令?我刚读到它们是可以互换的,但不知道怎么互换。
当前回答
这是我在窗户上做的。
从谷歌下载一个包含open ssl exe的zip文件 解压zip文件并进入bin文件夹。 进入bin文件夹的地址栏,输入cmd。这将在此文件夹中打开命令提示符。 move/将pem文件放到bin文件夹中。 执行两条命令。一个创建证书,另一个创建密钥文件
openssl x509 -outform der -in yourPemFilename.pem -out certfileOutName.crt
openssl rsa -in yourPemFilename.pem -out keyfileOutName.key
其他回答
.crt存储证书..pem格式。因此,.pem虽然也可以有其他东西,如csr(证书签名请求)、私钥、公钥或其他cert,但当它只存储一个cert时,它与.crt是一样的。
pem是一个base64编码的文件,每个部分之间有一个页眉和一个页脚。
要提取特定的部分,像下面这样的perl脚本是完全有效的,但是可以随意使用一些openssl命令。
perl -ne "\$n++ if /BEGIN/; print if \$n == 1 && /BEGIN/.../END/;" mydomain.pem
其中==1可以更改为您需要的任何部分。显然,如果你确切地知道你需要的页眉和页脚,并且文件中只有其中一个(通常情况下,如果你只保留证书和密钥),你可以简化它:
perl -ne "print if /^-----BEGIN CERTIFICATE-----\$/.../END/;" mydomain.pem
我可以使用以下方法将pem转换为crt:
openssl x509 -outform der -in your-cert.pem -out your-cert.crt
如果您之所以问这个问题是因为您正在使用mkcert,那么诀窍在于.pem文件是cert和-key。Pem文件是密钥。
(你不需要转换,只需要运行mkcert yourdomain.dev otherdomain.dev)
这是我在窗户上做的。
从谷歌下载一个包含open ssl exe的zip文件 解压zip文件并进入bin文件夹。 进入bin文件夹的地址栏,输入cmd。这将在此文件夹中打开命令提示符。 move/将pem文件放到bin文件夹中。 执行两条命令。一个创建证书,另一个创建密钥文件
openssl x509 -outform der -in yourPemFilename.pem -out certfileOutName.crt
openssl rsa -in yourPemFilename.pem -out keyfileOutName.key
先决条件
应该安装Openssl。 在Windows上,如果安装了Git Bash,试试!可以在这里找到替代二进制文件。
步骤1:从。pem中提取。key
openssl pkey -in cert.pem -out cert.key
步骤2:从。pem中提取。crt
openssl crl2pkcs7 -nocrl -certfile cert.pem | openssl pkcs7 -print_certs -out cert.crt
推荐文章
- 如何允许本地主机上的Apache使用HTTPS ?
- 从PKCS12文件中提取公钥/私钥,供以后在SSH-PK-Authentication中使用
- 如果我撤销一个现有的分发证书,它会不会对现有的应用程序造成影响?
- PHP获取网站URL协议- http vs https
- SSL握手警告:unrecognized_name错误,因为升级到Java 1.7.0
- SSL证书错误:无法获得本地颁发者证书
- 使用请求包时出现SSL InsecurePlatform错误
- BEGIN RSA PRIVATE KEY与BEGIN PRIVATE KEY的区别
- 你从哪里包含jQuery库?谷歌JSAPI吗?CDN吗?
- 没有为Android SSL连接找到信任锚
- 使用.htaccess和mod_rewrite强制SSL/https
- 在Java客户端中接受服务器的自签名ssl证书
- file_get_contents(): SSL operation failed with code 1, failed to enable crypto
- 如何与证书颁发机构签署证书签署请求?
- 签名Windows EXE文件