2008-12-05 8 views
9

Tôi đang tạo dịch vụ WCF được lưu trữ trong IIS7 trên Windows Vista SP1. Tôi nhận được lỗi sau:Sự cố với chứng chỉ tự ký trong WCF - Phải có khóa riêng

Chứng chỉ 'CN = SignedByLocalHost' phải có khóa riêng có khả năng trao đổi khóa. Quy trình phải có quyền truy cập đối với khóa cá nhân.

Có vẻ như tôi sẽ cần cung cấp cho quá trình lưu trữ đánh giá chứng chỉ đã được thực hiện trong quá khứ với winhttpcertcfg không được chấp nhận cho Vista. Bài viết tôi tìm thấy cho biết sử dụng bảng điều khiển chứng chỉ, nhưng tôi thiếu một vài thứ vì tôi không thấy bất kỳ khả năng nào để chỉnh sửa chứng chỉ của mình.

Mọi trợ giúp sẽ tuyệt vời!

Cảm ơn

Trả lời

5

Bạn có thể sử dụng IIS 7.0/7,5 Chỉ Start-> Run -> inetmgr Chọn máy chủ Dưới "Security" bảng, đi đến "Server Certificates" Trong khung bên trái nhấp - "Tạo chứng chỉ tự ký" và hoàn tất quy trình Crtfiticate sẽ được cài đặt trong LocalMachine StoreLocation theo Cá nhân tên miền. Bây giờ sử dụng chứng chỉ này trong dịch vụ WCF của bạn và bạn sẽ không gặp lỗi này

+0

Đó là một heck dễ dàng hơn nhiều, sau đó theo cách của tôi. Cách của tôi là cách tiếp cận IIS6 cũ – JoshBerke

8

Đã tìm ra.

Giả sử bạn có chứng chỉ tự ký tại c: \ OutCert lệnh sau sẽ hoạt động. Tôi đã rời khỏi trao đổi -ky.

makecert -sk SignedByCA IV c: \ OutCert.pvk -n "CN = MyLocalHost" ic c: \ OutCert.cer -sr LocalMachine -ss tôi trao đổi -sky pe

Bây giờ bạn có thể đi vào công cụ MMC và quản lý các khóa riêng và cấp quyền truy cập IIS cho khóa. Để quản lý khóa riêng tư, hãy nhấp chuột phải vào chứng chỉ và chọn All Tasks/Manage Private Keys.

+0

hmm Tôi không thể đánh dấu câu trả lời của riêng mình câu trả lời? – JoshBerke

+0

Vui lòng giải thích - chi tiết cách bạn truy cập công cụ MMC và quản lý khóa riêng tư? –

+0

Đây là tất cả nhiệm vụ/Quản lý khóa riêng tư? Tôi đang chạy Windows 2008 R2 và tôi không thấy tùy chọn đó trong MMC Snap in ... – essedbl