ソフトウェア ライセンス キー システム ( Ref )を実装できるように、RSACryptoServiceProvider との Openssl 相互運用性を実現する必要がありました。
後で PHP Web アプリケーションでライセンス管理に使用できるように、openssl を使用して Linux で秘密鍵と公開鍵を作成できるようにする必要がありました。ただし、VB.Net アプリケーションの RSA 署名ライセンス システムの基礎としても使用してください。
1週間の検索の後、最終的にこれが完全に可能であることを発見したので、それを共有しようと思いました.
Linux (またはその他の有用な OS) で開始し、openssl を使用して秘密鍵 (private.pem)、公開鍵 (public.pem)、証明書 (certificate.crt)、および個人情報交換ファイル (certificate.pfx) を作成します。 )。CN および emailAddress フィールドについて心配する必要はありません。証明書および pfx ファイルは、RSACryptoServiceProvider オブジェクトに公開キーまたは秘密キーを取得する手段としてのみ使用されます。
openssl genrsa -out private.pem 1024
openssl rsa -in private.pem -out public.pem -pubout
openssl req -nodes -x509 -days 3650 -subj '/CN=www.example.com/emailAddress=info@example.com' -new -key private.pem -out certificate.crt
openssl pkcs12 -export -out certificate.pfx -inkey private.pem -in certificate.crt
次に、コードに秘密鍵を取得します。
Dim cert As New X509Certificate2("certificate.pfx", "", X509KeyStorageFlags.Exportable)
Dim rsaProvider As RSACryptoServiceProvider = DirectCast(cert.PrivateKey, RSACryptoServiceProvider)
秘密鍵または公開鍵が必要な場合は、これを試してください。
msgbox(rsaProvider.ToXmlString(True)) 'Private key in XML format
msgbox(rsaProvider.ToXmlString(False)) 'Public key in XML format
公開鍵をコードに入れるには:
Dim cert As New X509Certificate2("certificate.crt")
Dim rsaProvider As RSACryptoServiceProvider = DirectCast(cert.PublicKey.Key, RSACryptoServiceProvider)
公開鍵が必要な場合は、これを試してください:
msgbox(rsaProvider.ToXmlString(False)) 'Public key in XML format
もっと来る.....