2009-02-26 25 views
50

Bạn có thể cho tôi biết liệu có thể hoặc không gán Chứng chỉ SSL cho một trang web trong IIS7 bằng ứng dụng APPCMD không?Cách gán Chứng chỉ SSL cho Trang web IIS7 từ Dấu nhắc Lệnh

Tôi quen thuộc với các lệnh để thiết lập HTTPS Binding

appcmd set site /site.name:"A Site" /+bindings.[protocol='https',bindingInformation='*:443:www.mysite.com'] 

và làm thế nào để có được ánh xạ hiện

%windir%\system32\inetsrv\Appcmd 

nhưng dường như không thể tìm thấy bất cứ cách nào để ánh xạ một trang web với một giấy chứng nhận (ví dụ: băm chứng chỉ)

Trả lời

50

Câu trả lời là sử dụng NETSH. Ví dụ

netsh http add sslcert ipport=0.0.0.0:443 certhash='baf9926b466e8565217b5e6287c97973dcd54874' appid='{ab3c58f7-8316-42e3-bc6e-771d4ce4b201}' 
+3

Nơi nào bạn nhận được APPID? –

+0

Tôi chỉ cần sử dụng GUID ngẫu nhiên cho appID –

+3

Không hoạt động đối với tôi: Thêm chứng chỉ SSL không thành công, Lỗi: 183 Không thể tạo tệp khi tệp đó đã tồn tại. – thomaspaulb

16

này đã giúp tôi rất nhiều: một hướng dẫn đơn giản, bởi Sukesh Ashok Kumar, để thiết lập SSL cho IIS từ dòng lệnh. Bao gồm nhập/tạo chứng chỉ với certutil/makecert.

http://www.awesomeideas.net/post/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx

EDIT: nếu URL gốc là xuống, nó vẫn còn có sẵn through the Wayback Machine.

+0

URL đó cho tôi một màn hình màu vàng ASP.NET chết ... – TLS

+0

@TLS - crap. Đã thêm liên kết máy rút tiền. – orip

4

@David và @orip có quyền.

Tuy nhiên, tôi muốn đề cập đến thông số ipport được chỉ định trong ví dụ (0.0.0.0:443) là những gì MSDN gọi là "địa chỉ không xác định (IPv4: 0.0.0.0 hoặc IPv6: [::]) ".

Tôi đã tìm kiếm nó, vì vậy tôi figured tôi tài liệu ở đây để tiết kiệm một người nào khác thời gian. Bài viết này tập trung vào SQL Server, nhưng thông tin vẫn còn có liên quan:

http://msdn.microsoft.com/en-us/library/ms186362.aspx

8

Với PowerShell và các module WebAdministration, bạn có thể làm như sau để gán một giấy chứng nhận SSL đến một trang web IIS:

# ensure you have the IIS module imported 
Import-Module WebAdministration 

cd IIS:\SslBindings 
Get-Item cert:\LocalMachine\My\7ABF581E134280162AFFFC81E62011787B3B19B5 | New-Item 0.0.0.0!443 

Những điều cần lưu ý ... giá trị, "7ABF581E134280162AFFFC81E62011787B3B19B5" là dấu vân tay cho chứng chỉ bạn muốn nhập. Vì vậy, nó cần phải được nhập khẩu vào kho chứng chỉ đầu tiên. Lệnh ghép ngắn New-Item lấy địa chỉ IP (0.0.0.0 cho tất cả IP) và cổng.

Xem http://learn.iis.net/page.aspx/491/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in/ để biết thêm chi tiết.

Tôi đã thử nghiệm điều này trong Windows Server 2008 R2 cũng như Windows Server 2012 trước khi phát hành.

+0

Tôi thích cách bạn có thể sử dụng chứng nhận Get-Item: \ LocalMachine \ My \ * để tận dụng lợi thế của chứng chỉ SSL được cấp phép AD. – carpenterjc

0

Sử dụng câu trả lời từ bài đăng này, tôi đã tạo một tập lệnh duy nhất đã thực hiện thủ thuật cho tôi. Nó bắt đầu từ tệp pfx, nhưng bạn có thể bỏ qua bước đó.

Ở đây nó là:

cd C:\Windows\System32\inetsrv 

certutil -f -p "pa$$word" -importpfx "C:\temp\mycert.pfx" 

REM The thumbprint is gained by installing the certificate, going to cert manager > personal, clicking on it, then getting the Thumbprint. 
REM Be careful copying the thumbprint. It can add hidden characters, esp at the front. 
REM appid can be any valid guid 
netsh http add sslcert ipport=0.0.0.0:443 certhash=5de934dc39cme0234098234098dd111111111115 appid={75B2A5EC-5FD8-4B89-A29F-E5D038D5E289} 

REM bind to all ip's with no domain. There are plenty of examples with domain binding on the web 
appcmd set site "Default Web Site" /+bindings.[protocol='https',bindingInformation='*:443:'] 
Các vấn đề liên quan