من از opensl برای تبدیل پرونده * صادر شده * استفاده می كنم. p12 را به پرونده * تبدیل كنم.

پرونده P12 با یک رمز عبور صادر شده است ، این دستوری است که من برای تولید پرونده PEM استفاده می کنم:

 opensl pkcs12 -clcerts -in eksported.p12 -out هر دو.pem

وقتی آن فرمان را اجرا می کنم یک عبارت PEM را ارائه می کنم ، مطالب مانند این است:

 ویژگی های کیف
    FriendName: نام دوستانه: com.example.org
    localKeyID: 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
    ... سایر صفات حذف شده ...
----- شروع گواهی -----
MIIGijCCBXKgAwIBAgIIQzWHsGhNz0wwDQYJKoZIhvcNAQELBQAwgZYxCzAJBgNV
... محتویات گواهی ...
----- تصدیق نهایی -----
ویژگی های کیف
    دوستانه نام: نام من
    localKeyID: 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
ویژگی های اصلی: 
----- شروع کلید خصوصی رمزگذاری شده -----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIQ9XzwbRcn0ACAggA
... محتویات کلید ...
----- پایان کلید خصوصی رمزگذاری شده -----

بعد از تهیه فایل PEM؛ من سعی می کنم تا با استفاده از بسته های [Crypto/tls Go و crypto / x509 Go ، مانند این:

 var block * pem.Block
برای {
  بلاک ، بایت = pem.Decode (بایت)
  اگر block.Type == "کلید خصوصی" || strings.HasSuffix (block.Type ، "کلید خصوصی") {
    بایت ، err: = x509.DecryptPEMBlock (بلوک ، [] بایت (رمز عبور))
    اگر اشتباه! = nil
        بازگشت صفر ، اشتباه است
    }
  }
}

با این حال ، قطعه خطای زیر را برمی گرداند:

 خطا: ازPEMBytes: x509: هیچ عنوان DEK-Info در بلوک وجود ندارد

خواندن کمی روی عنوان DEK-Info آن را به نظر می رسد که باید مانند این باشد:

 ----- BEGIN ENCRYPTED PRIVATE KEY -----
نسخه نوع: 4 ، رمزگذاری شده
DEK-Info: DES-EDE3-CBC، 5B01E932988DC66B

EPESt4ZVIrxnQXxxWWVa7cCR + vgNZ / 4vTu4mdq6pjaW7jMZoB8HV + mA745mQkQw7
... محتویات کلید خصوصی ...

اما به نظر نمی رسد که چگونه می توانم OpenSSL را برای اضافه کردن چنین سرصفحات به پرونده PEM دریافت کنم ، من از نسخه OpenSSL زیر استفاده می کنم:

 ➜ ~ نسخه Opensl
LibreSSL 2.8.3

آیا من چیزی آشکار را از دست داده ام؟ هرگونه کمک واقعاً قدردانی می شود!

</p>
<pre>گواهینامه ها - در هنگام تبدیل از P12 به PEM با استفاده از OpenSSL 2.8.3 ، هدر DEK-Info وجود ندارد<br />