可以使用Java的keytool
工具从keystore中导出证书。以下是一个基本的命令行示例来导出一个名为mycert
的证书:
keytool -export -alias mycert -file mycert.crt -keystore mykeystore.jks
在这个例子中,
-export
表示你想要导出一个证书。-alias mycert
是你在keystore中为该证书指定的别名。-file mycert.crt
是你要导出的证书文件的名字和位置。-keystore mykeystore.jks
指定了包含你的证书的keystore的位置。
执行这个命令后,你需要输入keystore的密码。然后,证书将被导出到你指定的文件中。
从keystore中提取Nginx所需的密钥和证书文件
- 首先,从JKS keystore中导出私钥和证书链:
使用keytool
命令行工具将keystore中的私钥和证书导出为PKCS#12格式(.p12
)的文件。假设你的keystore文件名为mykeystore.jks
,别名是alias_name
,密码是changeit
(默认的JKS keystore密码),你想要导出的.p12文件名为mycert.p12
。
keytool -importkeystore -srckeystore mykeystore.jks -destkeystore mycert.p12 -srcstoretype JKS -deststoretype PKCS12 -srcalias alias_name -destalias alias_name -srcstorepass changeit -deststorepass changeit
- 然后,从PKCS#12文件中提取私钥和证书:
你可以使用OpenSSL工具从生成的.p12
文件中提取私钥和证书。在下面的命令中,我们将私钥保存到private.key
文件,将证书保存到certificate.crt
文件。这里的changeit
应该是你在上一步使用的相同密码。
openssl pkcs12 -in mycert.p12 -nocerts -out private.key -nodes -password pass:changeit
openssl pkcs12 -in mycert.p12 -clcerts -nokeys -out certificate.crt -password pass:changeit
- 最后,在Nginx配置中引用这些文件:
将生成的certificate.crt
和private.key
文件放置在Nginx可访问的位置,例如/etc/nginx/ssl
。然后,在你的Nginxserver
模块配置中添加或修改以下内容以启用HTTPS:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
# 其他配置...
}
确保正确替换服务器名称、证书和私钥文件路径。
标签:keystore,crt,证书,导出,p12,mycert From: https://blog.51cto.com/u_13082241/9355518