Làm cách nào để tạo chứng chỉ tự ký cho một tên miền để phát triển?


122

Tôi có subdomain.example.comrằng tôi sử dụng cho mục đích phát triển. Giải pháp ứng dụng web của tôi chứa API web, v.v., tôi cần gọi từ các hệ thống bên ngoài, do đó tôi không sử dụng localhost.

Bây giờ tôi cần kiểm tra SSL và cần chứng chỉ cho subdomain.example.comtên miền phát triển của mình .

Tôi đã thử tạo chứng chỉ tự ký như được nêu trong http://technet.microsoft.com/en-us/l Library / cc753127 (v = ws.10) .aspx , nhưng chứng chỉ này chỉ hoạt động cho localhost. Chứng chỉ này có thể được sử dụng cho mục đích của tôi hay tôi sẽ phải tự tạo cho mình tên miền phụ phát triển? Nếu tôi phải tạo chứng nhận tự ký cho tên miền phụ phát triển của mình, tôi có thể sử dụng tiện ích hoặc dịch vụ trực tuyến nào (Miễn phí) cho việc này?

Câu trả lời:


133

Với tính năng chứng chỉ tự ký của IIS, bạn không thể đặt tên chung (CN) cho chứng chỉ và do đó không thể tạo chứng chỉ ràng buộc với lựa chọn tên miền phụ của bạn.

Một cách giải quyết vấn đề là sử dụng makecert.exe, được gói cùng với SDK .Net 2.0. Trên máy chủ của tôi, nó ở:

C:\Program Files\Microsoft.Net\SDK\v2.0 64bit\Bin\makecert.exe

Bạn có thể tạo quyền ký và lưu trữ trong kho lưu trữ chứng chỉ LocalMachine như sau (các lệnh này phải được chạy từ tài khoản Quản trị viên hoặc trong dấu nhắc lệnh nâng cao):

makecert.exe -n "CN=My Company Development Root CA,O=My Company,
 OU=Development,L=Wallkill,S=NY,C=US" -pe -ss Root -sr LocalMachine
 -sky exchange -m 120 -a sha1 -len 2048 -r

Sau đó, bạn có thể tạo chứng chỉ được liên kết với tên miền phụ của mình và được ký bởi cơ quan mới của bạn:

(Lưu ý rằng giá trị của tham số -in phải giống với giá trị CN được sử dụng để tạo thẩm quyền của bạn ở trên.)

makecert.exe -n "CN=subdomain.example.com" -pe -ss My -sr LocalMachine
 -sky exchange -m 120 -in "My Company Development Root CA" -is Root
 -ir LocalMachine -a sha1 -eku 1.3.6.1.5.5.7.3.1

Chứng chỉ của bạn sau đó sẽ xuất hiện trong IIS Manager để được liên kết với trang web của bạn như được giải thích trong bài đăng của Tom Hall.

Tất cả danh tiếng cho giải pháp này cho Mike O'Brien cho bài đăng blog tuyệt vời của anh ấy tại http://www.mikeobrien.net/blog/creating-'m-sign-wildcard


8
Tôi đã có thể làm cho công việc này. Tôi đã phải sử dụng dấu nhắc lệnh của Visual Studio 2010 để makecert.exeđi theo con đường của mình. Đối với các chứng chỉ tôi nghĩ tôi sẽ an toàn hơn và sử dụng -a SHA512 -len 8192- phải mất mãi mãi để tạo. Và như tôi nghi ngờ, nó không ảnh hưởng đến mức độ mã hóa IIS được sử dụng. Theo mặc định IIS sử dụng 128 bit, bạn phải thực hiện các công cụ chính sách nhóm để thay đổi điều này. Lưu ý thêm cho những độc giả khác: đừng thay đổi số ma thuật sau -eku, chúng bắt buộc phải có.
BrainSlugs83

3
Chạy tất cả các lệnh trên từ một dấu nhắc lệnh với các đặc quyền quản trị nếu không bạn sẽ nhận được thông báo "Lỗi: Lưu chứng chỉ được mã hóa để lưu trữ thất bại => 0x5".
Giles Roberts

1
Tôi cũng muốn chia sẻ một liên kết tuyệt vời Tạo chứng chỉ tự ký với makecert.exe để phát triển . Liên kết giải thích cách tiếp cận từng bước để tạo chứng chỉ gốc, chứng chỉ máy chủ và chứng chỉ ứng dụng khách. Thêm vào đó có bài để giải thích làm thế nào để sử dụng chúng.
Vikram Singh Saini

3
Các trình duyệt như Chrome đã bắt đầu không dùng nữa sha1. Thay thế -a sha512và xem xét thêm -len 2048vào makecertlời mời thứ hai và tất cả sẽ tốt.
O. Jones

2
Lưu ý rằng điều này dường như không còn hoạt động (ít nhất là như được hiển thị ở trên) trong Windows 10. Tôi đã phải sử dụng lệnh ghép ngắn PowerShell thay thế, hoạt động mà không gặp vấn đề gì.
DVK

119

Sử dụng PowerShell

Từ Windows 8.1 và Windows Server 2012 R2 (Windows PowerShell 4.0) trở lên, bạn có thể tạo chứng chỉ tự ký bằng New-SelfSignedCertificatelệnh ghép ngắn mới :

Ví dụ:

New-SelfSignedCertificate -DnsName www.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName subdomain.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName *.mydomain.com -CertStoreLocation cert:\LocalMachine\My

Sử dụng Trình quản lý IIS

  1. Khởi chạy Trình quản lý IIS
  2. Ở cấp độ máy chủ, trong IIS, chọn Chứng chỉ máy chủ
  3. Ở phía bên phải bên dưới Hành động chọn Tạo Chứng chỉ tự ký
  4. Trong đó ghi "Chỉ định tên thân thiện cho chứng chỉ" nhập tên thích hợp để tham khảo.
    1. Ví dụ: www.domain.comhoặcsubdomain.domain.com
  5. Sau đó, chọn trang web của bạn từ danh sách ở phía bên trái
  6. Ở phía bên phải bên dưới Hành động chọn Ràng buộc
  7. Thêm một ràng buộc HTTPS mới và chọn chứng chỉ bạn vừa tạo (nếu chứng chỉ của bạn là chứng chỉ ký tự đại diện, bạn sẽ cần chỉ định tên máy chủ)
  8. Nhấn OK và kiểm tra nó.

7
+1 cho giải pháp PowerShell. Nhanh chóng và dễ dàng và sau khi thực hiện điều đó, chứng chỉ mới xuất hiện trong Trình quản lý IIS> Kết nối> Trang web> [Ứng dụng của tôi]> Chỉnh sửa ràng buộc> Chỉnh sửa> thả xuống Chứng chỉ SSL.
Jon Schneider

3
Đã làm theo các hướng dẫn ở trên, và sau đó xem chứng chỉ, các hướng dẫn không điền vào trường CN vẫn có tên localhost.
daveD

7
Chính xác. Cái này sai! "Tên thân thiện" không liên quan gì đến CN. Tôi không biết tại sao câu trả lời này có quá nhiều sự ủng hộ?
c00000fd

25
Điều này được nâng cấp bởi vì phương pháp Powershell thực sự hoạt động. (Xem câu trả lời @DivineOps) Đây là lệnh tôi đã sử dụng: New-SelfSignedCertificate -FriendlyName *.mydomain.local -DnsName *.mydomain.local, localhost -CertStoreLocation Cert:\LocalMachine\MyĐiều này tạo ra một chứng chỉ trong cửa hàng Cá nhân. Sau đó, trước tiên tôi đã xuất chứng chỉ sang một tệp và sau đó nhập lại vào cả IIS thông qua Trình quản lý IIS (để sử dụng nó cho liên kết https của tôi) và sau đó đến CA gốc đáng tin cậy thông qua MMC (để tránh cảnh báo trình duyệt).
Anton

3
Các -NotAftertùy chọn cũng rất thuận tiện để xác định ngày hết hạn (nếu không có nó, mặc định là chỉ 1 năm). Ví dụ tôi đã sử dụngNew-SelfSignedCertificate -DnsName *.mydomain.com -FriendlyName *.mydomain.com -NotAfter (Get-Date).AddYears(15) -CertStoreLocation cert:\LocalMachine\My
Ben Amada

52

Để tạo chứng chỉ mới cho tên miền cụ thể của bạn:

Mở Powershell ISE với tư cách quản trị viên, chạy lệnh:

New-SelfSignedCertificate -DnsName *.mydomain.com, localhost -CertStoreLocation cert:\LocalMachine\My

Để tin tưởng vào chứng chỉ mới:

  • Mở mmc.exe
  • Chuyển đến Bảng điều khiển gốc -> Chứng chỉ (Máy tính cục bộ) -> Cá nhân
  • Chọn chứng chỉ bạn đã tạo, nhấp chuột phải -> Tất cả tác vụ -> Xuất và làm theo trình hướng dẫn xuất để tạo tệp .pfx
  • Chuyển đến Bảng điều khiển gốc -> Chứng chỉ -> Cơ quan chứng nhận gốc đáng tin cậy và nhập tệp .pfx mới

Để ràng buộc chứng chỉ vào trang web của bạn:

  • Mở trình quản lý IIS
  • Chọn trang web của bạn và chọn Chỉnh sửa trang web -> Ràng buộc trong khung bên phải
  • Thêm liên kết https mới với tên máy chủ chính xác và chứng chỉ mới

2
Điều này chỉ hoạt động trong Windows 8.1 và Windows Server 2012 R2 (Windows PowerShell 4.0) trở lên, mặc dù bạn có thể tạo chứng chỉ trong một trong các HĐH này và nhập nó sau vào một máy tính khác (Tôi đã làm như vậy để sử dụng chứng chỉ này với SSRS được cài đặt trong Windows Server 2008 R2).
từ

2
Thay vì Xuất & Nhập để sao chép vào Cơ quan Chứng nhận Root đáng tin cậy, bạn chỉ có thể Sao chép & Dán
jk7

Sao chép / Dán chỉ hoạt động trên cùng một máy chủ. Bạn cũng có thể ctrl-kéo chứng chỉ từ thư mục Cá nhân vào Cơ quan chứng nhận gốc đáng tin cậy trên cùng một máy chủ. Nếu bạn muốn một máy chủ khác có thể truy cập trang web mà không cần cảnh báo, thì bạn sẽ cần xuất nó và yêu cầu họ nhập chứng chỉ vào TRCA cục bộ của họ (bạn không cần bao gồm khóa riêng).
jreetwolfe

40

Tôi đã phải giải đố theo cách của mình thông qua các chứng chỉ tự ký trên Windows bằng cách kết hợp các bit và các mảnh từ các câu trả lời đã cho và các tài nguyên khác. Đây là hướng dẫn riêng của tôi (và hy vọng hoàn thành). Hy vọng nó sẽ dành cho bạn một số đường cong học tập đau đớn của riêng tôi. Nó cũng chứa infos về các chủ đề liên quan sẽ sớm xuất hiện khi bạn tạo certs của riêng mình.

Tạo chứng chỉ tự ký trên Windows 10 trở xuống

Đừng sử dụng makecert.exe. Nó đã bị Microsoft phản đối.
Cách hiện đại sử dụng lệnh Powershell.

Windows 10:

Mở Powershell với đặc quyền Quản trị viên:

New-SelfSignedCertificate  -DnsName "*.dev.local", "dev.local", "localhost"  -CertStoreLocation cert:\LocalMachine\My  -FriendlyName "Dev Cert *.dev.local, dev.local, localhost"  -NotAfter (Get-Date).AddYears(15)

Windows 8, Windows Server 2012 R2:

Trong Powershell trên các hệ thống này, các tham số -FriendlyName và -NotAfter không tồn tại. Đơn giản chỉ cần loại bỏ chúng khỏi dòng lệnh trên.
Mở Powershell với đặc quyền Quản trị viên:

New-SelfSignedCertificate  -DnsName "*.dev.local", "dev.local", "localhost"  -CertStoreLocation cert:\LocalMachine\My

Một cách khác là sử dụng phương pháp cho phiên bản Windows cũ hơn bên dưới, cho phép bạn sử dụng tất cả các tính năng của Win 10 để tạo chứng chỉ ...

Các phiên bản Windows cũ hơn:

Đề xuất của tôi cho các phiên bản Windows cũ hơn là tạo chứng chỉ trên máy Win 10, xuất tệp đó sang tệp .PFX bằng cách sử dụng ví dụ mmc (xem "Tin cậy chứng chỉ" bên dưới) và nhập chứng chỉ vào kho lưu trữ chứng chỉ trên máy đích với HĐH Windows cũ. Để nhập chứng chỉ KHÔNG nhấp chuột phải vào nó. Mặc dù có một mục "Chứng chỉ nhập" trong menu ngữ cảnh, nhưng nó đã thất bại trong tất cả các thử nghiệm của tôi để sử dụng nó trên Win Server 2008. Thay vào đó, hãy mở một phiên bản mmc khác trên máy đích, điều hướng đến "Chứng chỉ (Máy tính cục bộ) / Cá nhân / Chứng chỉ" , nhấp chuột phải vào khung giữa và chọn Tất cả tác vụ → Nhập.

Giấy chứng nhận kết quả

Cả hai lệnh trên tạo một chứng chỉ cho các miền localhost*.dev.local.
Phiên bản Win10 cũng có thời gian hoạt động là 15 năm và tên hiển thị có thể đọc được là "Dev Cert * .dev.local, dev.local, localhost".

Cập nhật: Nếu bạn cung cấp nhiều mục nhập tên máy chủ trong tham số -DnsName(như được hiển thị ở trên), mục nhập đầu tiên trong số này sẽ trở thành Chủ đề của tên miền (Tên chung AKA). Danh sách đầy đủ của tất cả các mục nhập tên máy chủ sẽ được lưu trữ trong trường Tên thay thế chủ đề (SAN) của chứng chỉ. (Cảm ơn @BenSewards đã chỉ ra điều đó.)

Sau khi tạo, chứng chỉ sẽ có sẵn ngay lập tức trong mọi ràng buộc HTTPS của IIS (hướng dẫn bên dưới).

Tin tưởng vào chứng chỉ

Chứng chỉ mới không phải là một phần của bất kỳ chuỗi tin cậy nào và do đó không được coi là đáng tin cậy bởi bất kỳ trình duyệt nào. Để thay đổi điều đó, chúng tôi sẽ sao chép chứng chỉ vào kho chứng chỉ cho CA gốc đáng tin cậy trên máy của bạn:

Mở mmc.exe, Tệp → Thêm / Xóa Snap-In → chọn "Chứng chỉ" ở cột bên trái → Thêm → chọn "Tài khoản máy tính" → Tiếp theo → "Máy tính cục bộ ..." → Kết thúc → OK

Trong cột bên trái, chọn "Chứng chỉ (Máy tính cục bộ) / Cá nhân / Chứng chỉ".
Tìm chứng chỉ mới được tạo (trong Win 10, cột "Tên thân thiện" có thể giúp).
Chọn chứng chỉ này và nhấn Ctrl-C để sao chép nó vào clipboard.

Trong cột bên trái, chọn "Chứng chỉ (Máy tính cục bộ) / CA gốc đáng tin cậy / Chứng chỉ".
Nhấn Ctrl-V để dán chứng chỉ của bạn vào cửa hàng này.
Chứng chỉ sẽ xuất hiện trong danh sách Các nhà chức trách gốc đáng tin cậy và hiện được coi là đáng tin cậy.

Sử dụng trong IIS

Bây giờ bạn có thể truy cập IIS Manager, chọn các ràng buộc của trang web cục bộ → Thêm → https → nhập tên máy chủ của biểu mẫu myname.dev.local(chứng chỉ của bạn chỉ hợp lệ cho *.dev.local) và chọn chứng chỉ mới → OK.

Thêm vào máy chủ

Đồng thời thêm tên máy chủ của bạn vào C: \ Windows \ System32 \ driver \ etc \ hosts:

127.0.0.1  myname.dev.local

Vui mừng

Bây giờ Chrome và IE nên coi chứng chỉ là đáng tin cậy và tải trang web của bạn khi bạn mở https://myname.dev.local.

Firefox duy trì cửa hàng chứng chỉ của riêng mình. Để thêm chứng chỉ của bạn ở đây, bạn phải mở trang web của mình trong FF và thêm nó vào các trường hợp ngoại lệ khi FF cảnh báo bạn về chứng chỉ.

Đối với trình duyệt Edge, có thể cần thêm hành động (xem thêm ở dưới).

Kiểm tra giấy chứng nhận

Để kiểm tra certs của bạn, Firefox là sự lựa chọn tốt nhất của bạn. (Tin tôi đi, bản thân tôi là một fan-boy Chrome, nhưng FF thì tốt hơn trong trường hợp này.)

Dưới đây là những lý do:

  • Firefox sử dụng bộ đệm SSL riêng của mình, được thanh lọc khi tải lại shift. Vì vậy, bất kỳ thay đổi nào đối với các trang web của trang web địa phương của bạn sẽ phản ánh ngay lập tức trong các cảnh báo của FF, trong khi các trình duyệt khác có thể cần khởi động lại hoặc xóa thủ công bộ đệm SSL của Windows.
  • Ngoài ra FF cung cấp cho bạn một số gợi ý có giá trị để kiểm tra tính hợp lệ của chứng chỉ của bạn: Nhấp vào Nâng cao khi FF hiển thị cảnh báo chứng chỉ. FF sẽ hiển thị cho bạn một khối văn bản ngắn với một hoặc nhiều cảnh báo có thể có trong các dòng trung tâm của khối văn bản:

Giấy chứng nhận không đáng tin cậy vì nó là tự ký.

Cảnh báo này là chính xác! Như đã lưu ý ở trên, Firefox không sử dụng kho chứng chỉ Windows và sẽ chỉ tin tưởng chứng chỉ này, nếu bạn thêm một ngoại lệ cho nó. Nút để làm điều này là ngay bên dưới các cảnh báo.

Chứng chỉ không hợp lệ cho tên ...

Cảnh báo này cho thấy, bạn đã làm gì đó sai. Tên miền (ký tự đại diện) của chứng chỉ của bạn không khớp với tên miền của trang web của bạn. Vấn đề phải được giải quyết bằng cách thay đổi tên miền (phụ) của trang web của bạn hoặc bằng cách cấp chứng chỉ mới phù hợp. Trong thực tế, bạn có thể thêm một ngoại lệ trong FF ngay cả khi chứng chỉ không khớp, nhưng bạn sẽ không bao giờ có biểu tượng ổ khóa màu xanh lá cây trong Chrome với sự kết hợp như vậy.

Firefox có thể hiển thị nhiều cảnh báo chứng nhận tốt đẹp và dễ hiểu khác tại nơi này, như certs đã hết hạn, certs với thuật toán ký kết lỗi thời, v.v. Tôi không tìm thấy trình duyệt nào khác cung cấp cho tôi mức độ phản hồi để khắc phục mọi vấn đề.

Tôi nên chọn mẫu miền nào (phụ) để phát triển?

Trong lệnh New-SelfSignCertert ở trên, chúng tôi đã sử dụng miền ký tự đại diện *.dev.local.

Bạn có thể nghĩ: Tại sao không sử dụng *.local?

Lý do đơn giản: Nó là bất hợp pháp như một miền ký tự đại diện.
Chứng chỉ ký tự đại diện phải chứa ít nhất một tên miền cấp hai.

Vì vậy, các tên miền của biểu mẫu *.localrất hay để phát triển các trang web HTTP. Nhưng không nhiều cho HTTPS, bởi vì bạn sẽ buộc phải cấp chứng chỉ phù hợp mới cho mỗi dự án mới mà bạn bắt đầu.

Ghi chú bên quan trọng:

  • Các miền máy chủ hợp lệ CHỈ có thể chứa các chữ cái máng z, chữ số, dấu gạch nối và dấu chấm. Không cho phép gạch dưới! Một số trình duyệt thực sự kén chọn về chi tiết này và có thể khiến bạn gặp khó khăn khi họ ngoan cố từ chối kết hợp tên miền motör_head.dev.localcủa bạn với mẫu ký tự đại diện của bạn *.dev.local. Họ sẽ tuân thủ khi bạn chuyển sang motoer-head.dev.local.
  • Ký tự đại diện trong chứng chỉ sẽ chỉ khớp MỘT nhãn (= phần giữa hai dấu chấm) trong một miền, không bao giờ hơn. *.dev.local phù hợp myname.dev.local nhưng KHÔNG other.myname.dev.local!
  • Ký tự đại diện đa cấp ( *.*.dev.local) KHÔNG thể có trong chứng chỉ. Vì vậy, other.myname.dev.localchỉ có thể được bao phủ bởi một ký tự đại diện của mẫu *.myname.dev.local. Do đó, tốt nhất là không sử dụng một phần tên miền cấp. Đặt tất cả các biến thể của bạn vào phần cấp ba. Bằng cách này, bạn sẽ có được cùng với một chứng chỉ duy nhất cho tất cả các trang web dev của bạn.

Vấn đề với Edge

Đây không thực sự là về chứng chỉ tự ký, nhưng vẫn liên quan đến toàn bộ quá trình:
Sau khi làm theo các bước trên, Edge có thể không hiển thị bất kỳ nội dung nào khi bạn mở lên myname.dev.local.
Lý do là một tính năng đặc trưng của quản lý mạng của Windows 10 cho Ứng dụng hiện đại, được gọi là "Cách ly mạng".

Để giải quyết vấn đề đó, hãy mở một dấu nhắc lệnh với đặc quyền Quản trị viên và nhập lệnh sau một lần:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

Có thể tìm thấy thêm thông tin về cách ly Edge và Network tại đây: https://bloss.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/


2
Tôi muốn lưu ý ở đây rằng tên DNS đầu tiên cũng được lưu dưới dạng Tên chủ đề mà bạn có thể không muốn là thẻ đại diện.
Bến cống

@BenSewards: Cảm ơn bạn đã chỉ ra điều đó, Ben. Tôi đã cập nhật câu trả lời để bao gồm các chi tiết về chủ đề / SAN. Bạn có thấy bất kỳ vấn đề nào khi có tên máy chủ ký tự đại diện trong trường Chủ đề thay vì trường SAN không?
Jpsy

@Jpsy - Điều này hoạt động với tôi cục bộ trên máy chủ nơi chứng nhận tự ký được tạo, nhưng không phải trong Firefox hoặc Chrome trên các máy (máy khách) của tôi. Tôi hiểu appname.dev has a security policy called HTTP Strict Transport Security (HSTS), which means that Firefox can only connect to it securely. You can’t add an exception to visit this site.rằng, như đã nói, không cho phép bạn thêm ngoại lệ máy khách, trái với hướng dẫn của bạn. Đây có phải là cấu hình xấu trong chính IIS liên quan đến Cài đặt SSL, Yêu cầu SSL và các tùy chọn chứng chỉ Máy khách không?
Mã Maverick

@CodeMaverick: Có thể có một số phần mềm chặn quảng cáo hoặc phần mềm chống vi-rút liên quan đến vấn đề của bạn không? Một tùy chọn khác có thể là chứng chỉ không khớp với tên miền bạn sử dụng. Hãy nhớ rằng * trong CN hoặc SAN của chứng chỉ chỉ có thể đại diện cho một phân đoạn trong tên miền ( không chứa bất kỳ dấu chấm nào). Vì vậy, CN *.mydomain.comcó thể là một chứng chỉ hợp lệ cho me.mydomain.comnhưng không phải cho me.at.mydomain.com.
Jpsy

14

Tôi gặp vấn đề tương tự khi tôi muốn bật SSL cho một dự án được lưu trữ trên IIS 8. Cuối cùng, công cụ tôi sử dụng là OpenSSL , sau nhiều ngày chiến đấu với các lệnh makecert. Chứng chỉ được tạo trong Debian, nhưng tôi có thể nhập nó một cách liền mạch vào IIS 7 và 8.

Tải xuống OpenSSL tương thích với HĐH của bạn và tệp cấu hình này . Đặt tệp cấu hình làm cấu hình mặc định của OpenSSL.

Đầu tiên, chúng tôi sẽ tạo khóa riêng và chứng chỉ của Tổ chức chứng nhận (CA). Chứng chỉ này là để ký yêu cầu chứng chỉ (CSR).

Bạn phải hoàn thành tất cả các trường được yêu cầu trong quy trình này.

  1. openssl req -new -x509 -days 3650 -extensions v3_ca -keyout root-cakey.pem -out root-cacert.pem -newkey rsa:4096

Bạn có thể tạo một tệp cấu hình với các cài đặt mặc định như thế này: Bây giờ chúng tôi sẽ tạo yêu cầu chứng chỉ, đây là tệp được gửi đến Cơ quan Chứng nhận.

Tên chung phải được đặt tên miền của trang web của bạn, ví dụ: public.organization.com .

  1. openssl req -new -nodes -out server-csr.pem -keyout server-key.pem -newkey rsa:4096

Bây giờ yêu cầu chứng chỉ được ký với chứng chỉ CA được tạo.

  1. openssl x509 -req -days 365 -CA root-cacert.pem -CAkey root-cakey.pem -CAcreateserial -in server-csr.pem -out server-cert.pem

Chứng chỉ được tạo phải được xuất sang tệp .pfx có thể được nhập vào IIS.

  1. openssl pkcs12 -export -out server-cert.pfx -inkey server-key.pem -in server-cert.pem -certfile root-cacert.pem -name "Self Signed Server Certificate"

Trong bước này, chúng tôi sẽ nhập chứng chỉ CA.

  1. Trong máy chủ của bạn phải nhập chứng chỉ CA cho Cơ quan chứng nhận gốc đáng tin cậy, vì IIS có thể tin tưởng chứng chỉ được nhập. Hãy nhớ rằng chứng chỉ được nhập vào IIS, đã được ký với chứng chỉ của CA.

    • Mở Command Prompt và gõ mmc .
    • Bấm vào tập tin .
    • Chọn Add / Remove Snap trong ... .
    • Nhấp đúp chuột vào Chứng chỉ .
    • Chọn Tài khoản Máy tínhTiếp theo -> .
    • Chọn Máy tính cục bộHoàn tất .
    • Ok .
    • Chuyển đến Chứng chỉ -> Cơ quan chứng nhận gốc đáng tin cậy -> Chứng chỉ , nhấp chuột vào Chứng chỉ và chọn Tất cả tác vụ -> Nhập ...

nhập mô tả hình ảnh ở đây

  • Chọn Tiếp theo -> Duyệt ...
  • Bạn phải chọn Tất cả các tệp để duyệt vị trí của tệp root-cacert.pem .
  • Nhấp vào Tiếp theo và chọn Đặt tất cả các chứng chỉ trong cửa hàng sau : Cơ quan chứng nhận gốc đáng tin cậy .
  • Nhấp vào Tiếp theoKết thúc .

nhập mô tả hình ảnh ở đây

Với bước này, IIS tin tưởng vào tính xác thực của chứng chỉ của chúng tôi.

  1. Trong bước cuối cùng, chúng tôi sẽ nhập chứng chỉ vào IIS và thêm trang web ràng buộc.

    • Mở Trình quản lý dịch vụ thông tin Internet (IIS) hoặc nhập inetmgr trên dấu nhắc lệnh và đi tới Chứng chỉ máy chủ .
    • Nhấp chuột vào Import ... .
    • Đặt đường dẫn của tệp .pfx, cụm mật khẩu và Chọn lưu trữ chứng chỉ trên Web Hosting .

nhập mô tả hình ảnh ở đây

  • Bấm vào OK .
  • Bây giờ hãy truy cập trang web của bạn trên IIS Manager và chọn Bindings ...Thêm một ràng buộc mới.

  • Chọn https làm loại ràng buộc và bạn sẽ có thể thấy chứng chỉ đã nhập.

  • Nhấn vào OK và tất cả đã xong.

nhập mô tả hình ảnh ở đây


Tôi muốn hết hạn lâu hơn với chứng chỉ tự ký và SDK Windows với makecert.exe không có sẵn trên máy chủ Windows. Một máy chủ Linux và câu trả lời này đã cung cấp giải pháp.
richk

Tôi rất vui vì bạn tìm thấy câu trả lời hữu ích của tôi.
Giuse

Nơi để đặt "public.organization.com" vào lệnh openssl?
Một

2

Một tùy chọn khác là tạo chứng chỉ tự ký cho phép bạn chỉ định tên miền cho mỗi trang web. Điều này có nghĩa là bạn có thể sử dụng nó trên nhiều tên miền.

Trong Trình quản lý IIS

  1. Nhấp vào nút tên máy
  2. Chứng chỉ máy chủ mở
  3. Trong bảng Hành động, chọn 'Tạo chứng chỉ tự ký'
  4. Trong 'Chỉ định tên thân thiện ...' đặt tên * Dev (chọn 'Cá nhân' từ danh sách loại)
  5. Tiết kiệm

Bây giờ, trên trang web của bạn trong IIS ...

  1. Quản lý các ràng buộc
  2. Tạo một ràng buộc mới cho Https
  3. Chọn chứng chỉ tự ký của bạn từ danh sách
  4. Sau khi được chọn, hộp tên miền sẽ được bật và bạn sẽ có thể nhập tên miền của mình.

nhập mô tả hình ảnh ở đây


Cảm ơn câu trả lời hữu ích nhất cho đến nay. Ít nhất để sử dụng nó để phát triển này là nhanh chóng.
cabaji99

0

Một cách dễ dàng khác để tạo chứng chỉ tự ký là sử dụng Trình quản lý Jexus,

Quản lý Jexus

  1. Chọn một nút máy chủ trong bảng Kết nối.
  2. Trong bảng giữa, nhấp vào biểu tượng Chứng chỉ máy chủ để mở trang quản lý.
  3. Trong bảng Hành động, nhấp vào Tạo Tạo chứng chỉ tự ký ... Mục menu của cuốn sách.

https://www.jexusmanager.com/en/latest/tutorials/elf-sign.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.