Bagikan melalui


Cara: Membuat Sertifikat X.509 yang Dapat Diakses oleh WCF

Untuk membuat sertifikat X.509 dapat diakses oleh Windows Communication Foundation (WCF), kode aplikasi harus menentukan nama dan lokasi penyimpanan sertifikat. Dalam keadaan tertentu, identitas proses harus memiliki akses ke file yang berisi kunci privat yang terkait dengan sertifikat X.509. Untuk mendapatkan kunci pribadi yang terkait dengan sertifikat X.509 di penyimpanan sertifikat, WCF harus memiliki izin untuk melakukannya. Secara default, hanya pemilik dan akun Sistem yang dapat mengakses kunci privat sertifikat.

Cara membuat sertifikat X.509 yang dapat diakses oleh WCF

  1. Berikan akun tempat WCF menjalankan akses baca ke file yang berisi kunci privat yang terkait dengan sertifikat X.509.

    1. Tentukan apakah WCF memerlukan akses baca ke kunci privat untuk sertifikat X.509.

      Tabel berikut ini merinci apakah kunci privat harus tersedia saat menggunakan sertifikat X.509.

      Penggunaan sertifikat X.509 Kunci privat
      Menandatangani pesan SOAP keluar secara digital. Ya
      Memverifikasi tanda tangan pesan SOAP masuk. No
      Mengenkripsi pesan SOAP keluar. No
      Mendenkripsi pesan SOAP masuk. Ya
    2. Tentukan lokasi dan nama penyimpanan sertifikat tempat sertifikat disimpan.

      Penyimpanan sertifikat tempat sertifikat disimpan ditentukan baik dalam kode aplikasi atau dalam konfigurasi. Misalnya, contoh berikut menentukan bahwa sertifikat terletak di penyimpanan sertifikat CurrentUser yang dinamai My.

      cc.ClientCredentials.ClientCertificate.SetCertificate(
          StoreLocation.CurrentUser,
          StoreName.My,
          X509FindType.FindBySubjectName,
          "contoso.com");
      
      cc.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "contoso.com")
      
    3. Tentukan tempat kunci privat untuk sertifikat disimpan di komputer menggunakan alat FindPrivateKey .

      Alat FindPrivateKey memerlukan nama penyimpanan sertifikat, lokasi penyimpanan sertifikat, dan hal unik yang mengidentifikasi sertifikat. Alat ini menerima nama subjek sertifikat atau thumbprint sebagai pengidentifikasi unik. Untuk informasi selengkapnya tentang cara menentukan thumbprint untuk sertifikat, lihat Cara: Mengambil Thumbprint Sertifikat.

      Contoh kode berikut menggunakan alat FindPrivateKey untuk menentukan lokasi kunci privat untuk sertifikat di My toko di CurrentUser dengan thumbprint 46 dd 0e 7a ed 0b 7a 31 9b 02 a3 a0 43 7a d8 3f 60 40 92 9d

      findprivatekey.exe My CurrentUser -t "46 dd 0e 7a ed 0b 7a 31 9b 02 a3 a0 43 7a d8 3f 60 40 92 9d" -a  
      
    4. Tentukan akun yang dijalankan WCF.

      Tabel berikut merinci akun tempat WCF berjalan untuk skenario tertentu.

      Skenario Identitas proses
      Klien (konsol atau aplikasi WinForms). Pengguna yang masuk saat ini.
      Layanan yang dihost sendiri. Pengguna yang masuk saat ini.
      Layanan yang dihosting di IIS 6.0 (Windows Server 2003) atau IIS 7.0 (Windows Vista). LAYANAN JARINGAN
      Layanan yang dihosting di IIS 5.X (Windows XP). Dikendalikan oleh elemen <processModel> dalam file Machine.config. Akun defaultnya adalah ASPNET.
    5. Berikan akses baca ke file yang berisi kunci pribadi ke akun yang menjalankan WCF, menggunakan alat seperti icacls.exe.

      Contoh kode berikut mengedit daftar kontrol akses diskresioner (DACL) untuk file yang ditentukan untuk memberikan akun LAYANAN JARINGAN akses baca (:R) ke file.

      icacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys\8aeda5eb81555f14f8f9960745b5a40d_38f7de48-5ee9-452d-8a5a-92789d7110b1" /grant "NETWORK SERVICE":R  
      

Lihat juga