OpenSSL證書轉PFX
阿新 • • 發佈:2021-07-09
OpenSSL證書轉pfx
pem證書轉pfx證書分兩種,一種帶ca證書轉換,一種不帶ca證書轉換
1. pem轉pfx(不帶ca證書)
以test.pem轉test.pfx為例
openssl rsa -in test.pem -out test.key
openssl x509 -in test.pem -out test.crt
openssl pkcs12 -export -out test.pfx -inkey test.key -in test.crt
2. pem轉pfx(帶ca證書)
以test.pem和ca.crt(ca.pem)轉 test_ca.pfx為例
openssl rsa -in test.pem -out test.key openssl x509 -in test.pem -out test.crt openssl pkcs12 -export -out test_ca.pfx -inkey test.key -in test.crt -CAfile ca.crt
3. 如果ca證書為pem格式
openssl pkcs12 -export -out test_ca.pfx -inkey test.key -in test.crt -CAfile ca.pem
openssl pkcs12 -export -out client-ca.pfx -inkey client-key.pem -in client-cert.pem -CAfile cacert.pem
openssl pkcs12 -export -out client.pfx -inkey client-key.pem -in client-cert.pem
主要解決實際場景問題
asp.net https使用Cloudflare 簽名證書
-
首先,到 Cloudflare 申請證書.
-
然後 下載/複製 pem格式證書到本地.
-
(可選)下載Cloudflare官方的CA證書.
根據你申請證書的加密方式,選擇對應的CA證書:
- RSA加密的選擇:Cloudflare Origin RSA PEM
- ECC加密的選擇:Cloudflare Origin ECC PEM(不要與 Apache cPanel 一起使用)
-
下載Windows平臺最新編譯的OpenSSL
-
執行OpenSSL命令
openssl pkcs12 -export -out Cloudflare.pfx -inkey key.pem -in certificate.pem -password pass:"123456" openssl pkcs12 -export -out Cloudflare2.pfx -inkey key.pem -in certificate.pem -CAfile origin_ca_rsa_root.pem -password pass:"123456"
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>()
.UseKestrel(options =>
{
options.AddServerHeader = false;
options.ListenAnyIP(80);
options.ListenAnyIP(443, lopr =>
{
lopr.UseHttps(
new System.Security.Cryptography.X509Certificates.X509Certificate2(
"Cloudflare.pfx", "123456"));
});
});
});