2017-11-09 6 views
-1

リソースファイル(Resources.resx)にCA証明書を含め、バイトストリームとして読み込まれるとX509Certificateコンストラクタークラスに提供します。 CA証明書は.der形式です。 .derファイルをプロジェクトのResourcesフォルダに追加しました。別のクラスでどのようにアクセスしてX509Certificateコンストラクタに渡すことができますか?CA証明書をC#コードにインクルードする

私は、このリンクでは一番下に与えられたC#コードを以下の[http://www.embedded101.com/Blogs/PaoloPatierno/entryid/366/mqtt-over-ssl-tls-with-the-m2mqtt-library-and-the-mosquitto-broker]

更新された:これは私がクライアント側でそれをやっている方法です。

client = new MqttClient(ddlServerIP.Text, MqttSettings.MQTT_BROKER_DEFAULT_SSL_PORT, true, new X509Certificate(Properties.Resources.ca) 
      , new X509Certificate(Properties.Resources.client2), MqttSslProtocols.TLSv1_2); 
     String clientId= Guid.NewGuid().ToString(); 
     byte code = client.Connect(clientId); 

しかし、サーバー側で私はエラーを取得する:あなたがassemblly自体にあなたの証明書を埋め込んだ場合

OpenSSL Error: error:140890C7:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:peer did not return a certificate

+0

は、ページ上の別のクラスからの証明書を使用した例をTheresの - あなたは、特に持っているかの問題 – BugFinder

+0

この方法でm2mqtt_ca.der証明書にアクセスできませんでした--->新しいX509Certificate(Resources.m2mqtt_ca)) – Spark

+0

@Oliver:待って、何?この質問はPDFファイルとは関係ありません。あなたは間違って二重ターゲットを間違って選んだのですか? –

答えて

0

(ファイルを右クリックして「埋め込まれたリソース」であることを確認してくださいそれと)そのプロパティの下のアクション=「埋め込まれたリソース」を構築する選択し、その後、あなたが進むことができ、次のよう

using (Stream cs = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProj.MyCert.cer")) 
{ 
    Byte[] raw = new Bbyte[cs.Length]; 

    for (Int32 i = 0; i < cs.Length; ++i) 
     raw[i] = (Byte)cs.ReadByte(); 

    X509Certificate2 cert = new X509Certificate2(); 
    cert.Import(raw); 

    // Do whatever you need... 
} 
関連する問題