2015-02-17 13 views
6

Tôi đang sử dụng signtool để áp dụng chữ ký kỹ thuật số cho các tệp .exe/.dll khác nhau. Tuy nhiên, việc xem các tệp đã ký trong Windows Explorer cho thấy rằng không có địa chỉ E-Mail nào được đặt, giống như trong ảnh chụp màn hình này (tôi không liên kết với "Công ty TNHH Phần mềm Paramount UK" - ảnh chụp màn hình này chỉ là kết quả đầu tiên tôi tìm thấy qua Google):Làm cách nào để chỉ định địa chỉ E-Mail khi ký một tệp nhị phân?

Screenshot of Windows explorer showing signature details without e-mail address

Tuy nhiên, tôi cũng thấy ảnh chụp màn hình khác cho thấy rằng đó là bằng cách nào đó có thể xác định một địa chỉ E-mail (ngay cả khi đó là một cái không có thật, như trong trường hợp này):

Screenshot of Windows explorer showing signature details including e-mail address

Có thể đặt địa chỉ E-mail này quakhônghoặc thực sự là thuộc tính của chứng chỉ (tức là nó cần phải được chỉ định khi mua chứng chỉ)?

+0

Tôi hy vọng đây là tài sản của chứng chỉ bạn đang ký và bạn sẽ cần nhận chứng chỉ mới bao gồm email của mình. Tôi chắc chắn đã nhìn thấy một trường cho khi tạo CSR với OpenSSL. – Rup

Trả lời

7

Thuộc tính email được trích xuất từ ​​emailAddress trong trường subject distinguished name chứng chỉ của bạn.

Bạn có thể thực hiện kiểm tra bằng cách sử dụng openssl để tạo chứng chỉ tự ký (sau đó bạn có thể tạo CSR với số emailAddress và gửi đến tổ chức phát hành chứng chỉ hợp lệ để tạo chứng chỉ thực thể hợp lệ). Để kiểm tra nó, bạn có thể thực hiện các bước sau:

Tạo chứng chỉ tự ký sử dụng theo openssl lệnh

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 

Sau đó, bạn sẽ được yêu cầu nhập các thông số sau (tất cả cho một đối tượng của chứng chỉ) :

enter image description here

Để tránh nhắc này, bạn có thể trực tiếp xác định subject trong lệnh trước đó sử dụng -subj như sau:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -subj "/C=ES/ST=58/L=Barcelona/O=yourOrgName/OU=yourDept/CN=yourAppName/[email protected]" 

Bây giờ bạn có thể tạo một p12 (hoặc pfx) từ chìa khóa tạo ra và cert bằng cách sử dụng lệnh sau:

openssl pkcs12 -export -out myTestWithMail.pfx -inkey key.pem -in cert.pem 

Bây giờ bạn có một p12 (myTestWithMail.pfx), mà bạn có thể sử dụng để ký một số exe hoặc dll bằng cách sử dụng lệnh signtool sau đây. Ví dụ tôi ký notepad++.exe (như trong ví dụ bạn liên kết trong câu hỏi của bạn):

signtool.exe sign /f C:\Users\Albert\myTestWithMail.pfx /p 1234 "C:\Program Files (x86)\Notepad++\notepad++.exe" 

Lưu ý rằng /f là dành cho con đường của chính ký chứng chỉ, và /p là mật khẩu cho khóa của bạn.

Bây giờ bạn sẽ nhìn thấy email trong file bạn đăng:

enter image description here

Vì vậy, cuối cùng, nếu bạn cần một chứng chỉ từ một cơ quan chứng nhận, bạn phải tạo ra CSR định emailAddress ví dụ sử dụng openssl lệnh:

openssl req -new -newkey rsa:2048 -nodes -out yourAppName.csr -keyout yourAppName.key -subj "/C=ES/ST=58/L=Barcelona/O=yourOrgName/OU=yourDept/CN=yourAppName/[email protected]" 

Hoặc cách khác mà không chỉ định thông số -subj và nhập giá trị chính xác cho tên phân biệt chủ đề khi là pr ompted:

openssl req -new -newkey rsa:2048 -nodes -out yourAppName.csr -keyout yourAppName.key 

Hope this helps,

2

Câu trả lời ngắn: , địa chỉ e-mail là một phần của chứng chỉ và không, bạn không thể xác định nó khi ký kết một tập tin nhị phân.

Câu trả lời dài: @albciff chỉ ra cách tạo chứng chỉ có địa chỉ email liên kết với nó nhưng có vẻ như bạn không may mắn trong trường hợp bạn mua chứng chỉ từ Thawte; đồng nghiệp của tôi đã hỏi câu hỏi chính xác này về sự hỗ trợ kỹ thuật của nhà cung cấp chứng chỉ của chúng tôi (Thawte) đã trả lời:

Khi đăng ký chứng chỉ ký mã, địa chỉ email không phải là một phần của quá trình xác nhận. Thật không may, bởi vì email không phải là một phần của quá trình xác nhận, nó sẽ không được bao gồm trong các thuộc tính của mã đã ký.

Bên cạnh đó, hỗ trợ kỹ thuật gọi chúng tôi để this article trong 'Thawte Trung tâm Kiến thức' mà giải thích:

Địa chỉ e-mail luôn xuất hiện như là "không có sẵn" khi xem các thuộc tính mã ký . Điều này là do chứng chỉ xác thực tổ chức nhưng không yêu cầu thông tin về địa chỉ email của tổ chức. Vì vậy, chúng tôi đã xác thực tổ chức, nhưng đã không xác nhận e-mail. Điều này không hề làm giảm giá trị hoặc tính hữu ích của ID của bạn.

Vì vậy, không chỉ là phần địa chỉ email của chứng chỉ, cho dù bạn có thể liên kết địa chỉ email với chứng chỉ cũng tùy thuộc vào người đã cấp chứng chỉ.

+0

@FrerichRabbe như tôi đã nói về mặt kỹ thuật, nhưng đối với một số cơ quan cấp chứng chỉ, bạn không thể sử dụng 'emailAddress' vì họ không thể xác thực nó ... ít nhất là với hành vi' Thawte' ... 'Thawte' cho trường hợp này vô lý với tôi vì họ đang xác thực tất cả các dữ liệu khác (doanh nghiệp, vv) một phát hành cuối cùng là một chứng chỉ ... tại sao họ không thể xác thực 'email' ?. Dù sao khi bạn nói bạn có thể thử với cơ quan cấp chứng chỉ khác. – albciff

Các vấn đề liên quan