2012-10-11 28 views
9

Đột nhiên giấy chứng nhận unexipred được tạo bằng makecer/pvk2pfx của chúng tôi đang phát hiện lỗi khi cố gắng xuất bản ứng dụng ClickOnce. Điều này làm việc tốt chỉ tuần trước ...Chứng chỉ của người đăng ký ClickOnce không hợp lệ để ký khi sử dụng makecer/pvk2pfx

Thông báo lỗi:

Error 2 An error occurred while signing: Failed to sign bin\Debug\app.publish\setup.exe. SignTool Error: The signer's certificate is not valid for signing. SignTool Error: An error occurred while attempting to sign: bin\Debug\app.publish\setup.exe

Khi tôi sử dụng "Create Certificate Test" tùy chọn trong tab Ký rằng giấy chứng nhận hoạt động tốt và các ứng dụng được xuất bản thành công.

Khi tự tạo giấy chứng nhận của tôi với makecer/Pvk2pfx tôi sau MSDN instructions

Khi tôi xóa cũ giấy chứng nhận được tạo thủ của tôi, tạo một hình mới sử dụng makecer/Pvk2pfx và cố gắng sử dụng một Tôi nhận được cùng một lỗi.

Ứng dụng là ứng dụng WPF nhắm mục tiêu .NET 4 và đây là tất cả trong VS 2010 ...

Bất kỳ ý tưởng nào?

Trả lời

20

Nó làm việc cho tôi sau khi tôi đã chỉ định chiều dài giấy chứng nhận lớn hơn 1024:

makecert -sv MyApp.pvk -n "CN=MyCompany" -len 2048 MyApp.cer -r 
pvk2pfx -pvk MyApp.pvk -spc MyApp.cer -pfx MyApp.pfx -po MyPassword 

Microsoft phát hành bản cập nhật ảnh hưởng đến tất cả các chứng chỉ có khóa RSA nhỏ hơn 1024 bit.

http://support.microsoft.com/kb/2661254

+0

Vâng, đó là vấn đề cơ bản. Tôi nghĩ rằng việc chuyển đổi -len là không cần thiết mặc dù bởi vì sau khi makecert cập nhật tạo ra các chứng chỉ có chiều dài lớn hơn 1024 theo mặc định. –

+3

Chứng chỉ của tôi không hợp lệ vì vậy tôi đã thử -len 2048 và nó vẫn không hợp lệ. Vấn đề thực tế đã được giải quyết bằng cách thêm ** - r ** mà sau đó loại bỏ lỗi signtool. – AshRolls

5

Sau khi sử dụng nút chuyển -r (Tạo chứng chỉ tự ký) với makecert chứng chỉ pfx được tạo bằng pvk2pfx hiện hoạt động cho việc xuất bản ClickOnce ... không chắc chính xác điều gì đã xảy ra ở đây vì khóa cũ không được "tự ký "làm việc tốt cho một thời gian dài ...

lệnh chính xác tôi đã sử dụng để tạo ra các giấy chứng nhận PFX làm việc ...

makecert -sv MyApp.pvk -n "CN=MyCompany" MyApp.cer -r 

pvk2pfx -pvk MyApp.pvk -spc MyApp.cer -pfx MyApp.pfx 
Các vấn đề liên quan