Cách tạo chứng chỉ tự ký với PowerShell – CloudSavvy IT

Logo Powershell

Giấy chứng nhận tự ký là một cách dễ dàng để thực hiện kiểm tra và các nhiệm vụ ít quan trọng khác. Chứng chỉ tự ký không có chuỗi chứng chỉ đáng tin cậy sao lưu và được ký bởi người dùng đã tạo. Nếu bạn tin tưởng thực thể đã ký chứng chỉ thì bạn có thể sử dụng nó giống như bạn sẽ xác nhận hợp lệ.

Nếu bạn cần tạo chứng chỉ tự ký, một cách bạn có thể làm là với PowerShell. Trong bài viết này, bạn sẽ tìm hiểu cách tạo chứng chỉ tự ký trong PowerShell.

Tạo chứng chỉ tự ký

Để tạo chứng chỉ tự ký với PowerShell, bạn có thể sử dụng lệnh ghép ngắn New-SelfSignCertert. Lệnh ghép ngắn này được bao gồm trong mô-đun PKI.

Có nhiều lựa chọn khi tạo chứng chỉ. Các loại chứng chỉ tự ký phổ biến là SSLServerAuthentication (mặc định cho lệnh ghép ngắn) và CodeSigning. Ngoài ra, bạn có thể tạo DocumentEncryptCert, rất hữu ích để mã hóa tệp và cuối cùng là chứng chỉ Tùy chỉnh cho phép bạn chỉ định nhiều tùy chọn tùy chỉnh.

Hãy để đi trước và tạo chứng chỉ SSLServerAuthentication thông thường. Đây là một cái thường được sử dụng để bảo vệ các trang web bằng mã hóa SSL. Bạn có thể xem một ví dụ về điều này dưới đây. Trong ví dụ này, chứng chỉ đang được lưu trữ trong Chứng chỉ: LocalMachine Kho chứng chỉ của tôi.

$ Params = @ {
    “DnsName” = @ (“mywebsite.com”, “www.mywebsite.com”)
    “CertStoreLocation” = “Chứng nhận: LocalMachine My”
    “NotAfter” = (Ngày nhận) .AddMonths (6)
    “Thuật toán chính” = “RSA”
  “Độ dài khóa” = “2048”
}

PS C: > New-SelfSignCertert @Params

PSParentPath: Microsoft.PowerShell.Security Chứng nhận :: LocalMachine My

Chủ đề vân tay EnhizedKeyUsageList
———- ——- ——————–
4EFF6B1A0F61B4BG692C77F09889BD151EE8BB58 CN = mywebsite.com {Xác thực máy khách, Xác thực máy chủ}

Nếu mọi việc suôn sẻ, bây giờ bạn sẽ có một chứng chỉ mới được tạo! Bạn sẽ nhận thấy rằng đầu ra trả về chủ đề nhưng chủ đề chỉ hiển thị mục đầu tiên được truyền cho nó thông qua tham số DnsName. Điều này là do URL thứ hai trở thành một phần của danh sách thay thế chủ đề.

* Lưu ý nếu bạn cố chạy cái này, không phải với tư cách Quản trị viên, bạn sẽ nhận được thông báo lỗi như dưới đây:

New-SelfSignCertert: certEnroll :: CX509Enrollment :: _ CreateRequest: Truy cập bị từ chối. 0x80090010 (-2146893808 NTE_PERM)

Như bạn có thể nói với Access bị từ chối, bạn chưa có quyền chạy cái này. *

Tìm kiếm thông tin trên Giấy chứng nhận của chúng tôi

Hãy để chắc chắn rằng chứng chỉ đã được tạo theo cách chúng ta mong đợi. Để tìm thông tin về một chứng chỉ cụ thể với PowerShell, bạn có thể sử dụng lệnh ghép ngắn Get-ChildItem, giống như bạn có thể liệt kê các tệp trong một thư mục.

PS C: > Get-ChildItem -Path “Chứng nhận: LocalMachine My” | Dấu vân tay ở đâu -EQ 4EFF6B1A0F61B4BF692C77F09889AD151EE8BB58 | Chọn đối tượng *

PSPath: Microsoft.PowerShell.Securance Chứng nhận :: LocalMachine My 4EFF6B1A0F61B4BF692C77F09889AD151EE8BB58
                           58
PSParentPath: Microsoft.PowerShell.Security Chứng nhận :: LocalMachine My
Tên PSChild: 4EFF6B1A0F61B4BF692C77F09889AD151EE8BB58
PSDrive: Chứng chỉ
PSProvider: Microsoft.PowerShell.Security Chứng chỉ
PSIsContainer: Sai
EnhizedKeyUsageList: {Xác thực ứng dụng khách (1.3.6.1.5.5.7.3.2), Xác thực máy chủ (1.3.6.1.5.5.7.3.1)}
DnsNameList: {mywebsite.com, www.mywebsite.com}
SendAsTrustyIssuer: Sai
EnrollmentPolicyEndPoint: Microsoft.CertertService.Commands.EnrollmentEndPointProperty
EnrollmentServerEndPoint: Microsoft.CertertService.Commands.EnrollmentEndPointProperty
Chính sách:
Lưu trữ: Sai
Tiện ích mở rộng: {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid,
                           System.Security.Cryptography.Oid, System.Security.Cryptography.Oid}
Tên thân thiện:
HasPrivateKey: Đúng
PrivateKey: System.Security.Cryptography.RSACng
IssuerName: System.Security.Cryptography.X509Certert.X500DistinguishedName
Không phải sau: 22/12/2020 11:50:15 AM
Không phải trước: 22/12/2019 10:40:20 AM
PublicKey: System.Security.Cryptography.X509Certert.PublicKey
RawData: {48, 130, 3, 55 Móc}
Số sê-ri: 608C4D5E6B8D41B44ADDC6BD725FE264
Chữ ký thuật toán: System.Security.Cryptography.Oid
Tên chủ đề: System.Security.Cryptography.X509Certert.X500DistinguishedName
Dấu vân tay: 4EFF6B1A0F61B4BF692C77F09889AD151EE8BB58
Phiên bản: 3
Xử lý: 2628421609632
Tổ chức phát hành: CN = mywebsite.com
Chủ đề: CN = mywebsite.com

Có rất nhiều thông tin tuyệt vời ở đây, nhưng bạn có thể nhận thấy trong DnsNameList rằng cả hai trang web hiện đang được hiển thị. Ngoài ra, ngày NotAfter được điền chính xác là 6 tháng kể từ ngày tạo.

Chứng nhận ký mã

Nếu bạn làm việc trong PowerShell, bạn sẽ biết về chính sách thực thi. Nếu bạn có chính sách thực thi được đặt thành AllSign thì bạn sẽ cần phải ký từng tập lệnh chạy trên hệ thống của mình. Để tạo một chứng chỉ để làm điều này, nó khá đơn giản!

PS C: > New-SelfSignCertert -Type ‘CodeSigningCert’ -DnsName ‘Myhost’

PSParentPath: Microsoft.PowerShell.Security Chứng nhận :: LocalMachine MY

Chủ đề vân tay EnhizedKeyUsageList
———- ——- ——————–
14D535EG834370293BA103159EB00876A79959D8 CN = Ký mã Myhost

Giấy chứng nhận bảo vệ tài liệu

Có thể bạn chưa gặp phải điều này nhiều trước đây, nhưng PowerShell, với API Bảo vệ dữ liệu, có thể mã hóa các tệp trên hệ thống của bạn bằng Chứng chỉ bảo vệ tài liệu. Sử dụng lệnh ghép ngắn New-SelfSignCertert, chúng tôi có thể dễ dàng tạo chứng chỉ để mã hóa tài liệu của bạn.

$ Params = @ {
    “DnsName” = “Myhost”
    “CertStoreLocation” = “Chứng nhận: CurrentUser My”
    “KeyUsage” = “KeyEncodingment”, “DataEncodingment”, “KeyAgribution”
    “Loại” = “DocumentEncryptCert”
}

PS C: > New-SelfSignCertert @Params

Chủ đề vân tay EnhizedKeyUsageList
———- ——- ——————–
14D535EG934370293BA203159EB00876A79959D8 CN = Mã hóa tài liệu Myhost

Với loại chứng chỉ này, giờ đây bạn có thể sử dụng chứng chỉ được tạo để mã hóa và giải mã nội dung bằng các lệnh PowerShell như Protect-CMSMessage và UnProtect-CMSMessage.

Mã hóa / giải mã nội dung như thế này trở nên hữu ích nếu bạn cần truyền dữ liệu được mã hóa xung quanh vì sau đó bạn có thể sử dụng chứng chỉ này trên một hệ thống khác để giải mã dữ liệu. Nếu bạn dựa vào API bảo vệ dữ liệu tiêu chuẩn (DPAPI) được tích hợp trong Windows, thì bạn sẽ không thể giải mã dữ liệu trên các hệ thống khác hoặc cho người dùng khác.

Tóm lược

PowerShell giúp tạo chứng chỉ tự ký cực kỳ dễ thực hiện. Các chứng chỉ này có vô số cách sử dụng, nhưng một lưu ý quan trọng cần nhớ là chúng chỉ nên được sử dụng trong thử nghiệm. Bạn đã thắng có một chuỗi ủy thác chứng chỉ hợp lệ để xác thực chứng chỉ tự ký của bạn.

Xem việc tạo chứng chỉ tự ký nhanh chóng và dễ dàng như thế nào, bạn có thể bắt đầu thực hiện việc này ngay hôm nay và mã hóa chính xác mọi kết nối hoặc dữ liệu mà bạn cần!



Nguồn HowToGeek

Chúng tôi rất vui khi biết đánh giá của bạn

Leave a reply

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

GiaTot7
Logo
Reset Password