Điểm:1

Làm cách nào để sửa "Không có chứng chỉ ký có thể sử dụng được" trong VBA?

lá cờ ne

Chúng tôi có tập lệnh VBA trong Outlook tạo cửa sổ bật lên khi gửi email bên ngoài. Rõ ràng chữ ký của kịch bản đã hết hạn vào cuối tuần. Người đã ký nó không còn ở đây nữa. Tôi thấy chứng chỉ trong CA trên DC của chúng tôi nhưng không có tùy chọn gia hạn.

Tôi đã tạo chứng chỉ ký mã và nhập nó vào máy tính của mình nhưng trình soạn thảo VBA cứ báo Không có chứng chỉ ký có thể sử dụng được. Tôi thấy chứng chỉ trong cửa hàng chứng chỉ của mình. Mẫu có nội dung "Ký mã" thay vì chứng chỉ gốc "Ký mã %ORG%" nếu điều đó quan trọng.

Tôi thực sự không biết mình đang làm gì và đã dành hàng giờ để tìm kiếm trực tuyến và nghiên cứu để đạt được điều này. Tôi đang ở ngõ cụt và có thể sử dụng một số trợ giúp để ký lại tài khoản này. Nếu có một giải pháp thay thế hiện đại hơn tốt hơn để nhận được lời nhắc của người dùng dành cho người nhận bên ngoài, hãy cho tôi biết.

joeqwerty avatar
lá cờ cv
TBH, tại sao bạn cần phải làm điều này? Doanh nghiệp cần gì?
naps1saps avatar
lá cờ ne
Chúng tôi không muốn vô tình gửi email nội bộ cho khách hàng, đó có thể là vấn đề lớn đối với loại khách hàng của chúng tôi. Chúng tôi cũng không muốn người dùng rơi vào tình trạng giả mạo email vì bất kỳ hành vi vi phạm nào cũng là một vấn đề rất lớn có thể gây hậu quả tài chính do quy định, v.v. Chúng tôi có biểu ngữ nhưng TBH khá khó hiểu. Trong lĩnh vực của chúng tôi, lời nhắc người dùng là quy trình khá chuẩn.
Massimo avatar
lá cờ ng
VBA năm 2021? *Có thật không*?!?
Điểm:1
lá cờ us

Xin lỗi, tôi không phải là một chuyên gia lớn ở đây, nhưng tôi vẫn sẽ cố gắng thêm 5 xu của mình...

Trước hết, bạn đã thử chứng chỉ tự ký chưa? Nó dễ gỡ lỗi hơn, sẽ giúp bạn kiểm tra cục bộ. https://social.technet.microsoft.com/Forums/lync/en-US/6b06b276-4266-4f29-ae22-2a3c86c4238f/certificate-for-digital-signature?forum=outlook

Tiếp theo, bạn có chắc là bạn đã nhập khóa cá nhân cùng với chứng chỉ không? Rất có thể bạn sẽ cần nó, theo như tôi hiểu về cơ chế ký (xin lỗi nếu tôi làm bạn hiểu lầm; nếu bạn đang mua ý tưởng về khóa riêng, vui lòng kiểm tra cách cài đặt nó ở đó: https://security.stackexchange.com/questions/25996/how-to-import-a-private-key-in-windows - bạn sẽ cần PFX thay vì CER, nếu không thì sẽ không có khóa riêng tư nào được nhập).

Cuối cùng, bạn đã nhập chứng chỉ của mình vào vùng chứa nào trong kho chứng chỉ? Nó cũng có thể ảnh hưởng đến kết quả. https://answers.microsoft.com/en-us/msoffice/forum/all/vba-i-install-digital-signing-certificate-but/231529b1-8099-4c7b-9bb6-2c36aeba00a4

Các bước để có được chứng chỉ để ký

  1. Trên máy tính ký, hãy mở Quản lý chứng chỉ người dùng
  2. Nhấp chuột phải Cá nhân > Tất cả nhiệm vụ > Yêu cầu chứng chỉ mới
  3. Lựa chọn Chính sách đăng ký Active Directory > Tiếp theo
  4. Chọn một Ký mã mẫu và bấm vào Đăng ký

Trình soạn thảo VBA bây giờ sẽ thấy chứng chỉ và cho phép bạn ký vào tập lệnh.

naps1saps avatar
lá cờ ne
Tôi có nó trong root cá nhân và đáng tin cậy và nhà xuất bản đáng tin cậy. Nhìn vào liên kết cuối cùng đó, tôi khá tin rằng mình cần xuất PFX chứ không phải CER. Tôi nghĩ rằng lúc đầu tôi đã nhập một PFX không hoạt động nhưng đó không phải là chứng chỉ ký mã cụ thể. Tôi sẽ xem xét lại vì vậy cảm ơn vì đã chỉ cho tôi một hướng.
Alex avatar
lá cờ us
Theo tôi hiểu, sự khác biệt chính là phải có khóa riêng. Bạn có thể kiểm tra nó bằng hướng dẫn này: https://knowledge.digicert.com/quovadis/ssl-certificates/ssl-General-topics/how-do-i-know-if-my-certificate-has-the -private-key-attached-within-windows.html
naps1saps avatar
lá cờ ne
Tôi không thể xuất khóa cá nhân từ máy chủ nên có lẽ tôi cần quay lại bước 1 và tạo chứng chỉ mới cho phép xuất PFX? Tôi đã sử dụng phương pháp truy cập HTTPS://%ServerFQDN/certsvr và yêu cầu chứng chỉ mới > nâng cao > ký mã > thêm chuỗi yêu cầu BASE64. Tôi không thể nhớ mình đã lấy nó từ đâu > tải xuống nhưng không có tùy chọn PFX hoặc xuất từ ​​thư mục gốc CA MMC.
Alex avatar
lá cờ us
Tuyên bố miễn trừ trách nhiệm: Tôi không phải là người chuyên nghiệp ở đây. Đã nói rằng, tôi vẫn tin rằng bạn cần khóa riêng.Và lưu ý rằng máy chủ CA thường sẽ *không* lưu trữ khóa riêng tư, đó là cách mã hóa hoạt động. Bạn *tạo* một cặp (khóa riêng tư + khóa chung) trên máy của nhà phát triển, sau đó bạn ký phần mềm bằng khóa *riêng tư* của mình, và sau đó bạn phân phối khóa *công khai* cho đối tượng của mình để họ có thể xác minh phần mềm. Do đó, máy chủ CA không cần lưu trữ khóa riêng tư - kết thúc câu chuyện là không cần thiết. MMC trên CA có cho thấy chứng chỉ có chứa khóa riêng không?
naps1saps avatar
lá cờ ne
Nếu tôi truy cập máy cục bộ và yêu cầu chứng chỉ, tôi đã chọn, hiển thị tất cả các mẫu và ký mã nhưng không khả dụng. Tôi nghĩ rằng tôi cần phải vượt qua điều này giống như bạn đang nói và bỏ qua máy chủ, vì vậy tôi sẽ tập trung vào việc đó. Tôi có thể cần phải đăng nhập bằng thông tin đăng nhập nâng cao của mình để làm việc này. Cảm ơn một lần nữa.
Alex avatar
lá cờ us
Kính gửi @naps1saps, vui lòng lưu ý rằng tôi không phải là chuyên gia, thật không may, tôi chỉ là một người đoán mù ở đây :( Tôi rất xin lỗi nếu các đề xuất của tôi thực sự sẽ khiến bạn chuyển hướng khỏi mục tiêu của mình, nhưng điều đó hoàn toàn có thể xảy ra, hãy ghi nhớ điều đó và đánh giá các giả định của tôi từ phía bạn. Chúc may mắn trong nhiệm vụ của bạn, vui lòng xuất bản câu trả lời tại đây sau khi bạn nhận được giải pháp)
naps1saps avatar
lá cờ ne
Tôi đã nhận nó ngay bây giờ. Tôi không nhận thấy có một chứng chỉ MMC cụ thể cho cả người dùng và máy tính. Tôi đã có thể lấy chứng chỉ được thêm bằng MMC của người dùng. Cảm ơn một lần nữa vì đã chỉ cho tôi theo hướng đó. Đã chỉnh sửa câu trả lời của bạn để cung cấp cho bạn tín dụng.
naps1saps avatar
lá cờ ne
Chà, tôi gần hơn nhưng bây giờ tôi gặp sự cố khi yêu cầu VBA lưu trạng thái đã ký vào tệp dự án. Rất bực bội.
Alex avatar
lá cờ us
Rất vui khi biết bạn đã làm được!) Đối với số tiếp theo, bạn nên tạo một câu hỏi riêng.
naps1saps avatar
lá cờ ne
Tôi đã nhận nó ngay bây giờ. Bạn phải biên dịch dự án trước khi nó lưu trạng thái đã ký. Tôi thích cách tài liệu riêng của Microsoft không nói rằng điều này là cần thiết mà thay vào đó, cuối cùng lại khuyến nghị điều đó.
Alex avatar
lá cờ us
Xin chúc mừng! Cảm ơn vì đã chia sẻ, nó có thể giúp được ai đó vào một ngày nào đó)
Alex avatar
lá cờ us
Và chỉ cần nói thêm ở đây: hãy xem, việc ký một thứ gì đó thực sự đang đóng băng hoàn toàn nó ở trạng thái hiện tại. Ngay cả khi bạn thay đổi một bit, chữ ký sẽ bị vô hiệu. Đó có thể là lý do tại sao bạn phải biên dịch trước, sau đó chỉ ký tên - để tránh bất kỳ lỗi hoặc sửa đổi nào sau đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.