gpt4 book ai didi

html - IIS 8 - 使用 SSL 证书时找不到 default.html

转载 作者:可可西里 更新时间:2023-11-01 13:34:30 25 4
gpt4 key购买 nike

我已经创建了一个 webapp 和一个控制台应用程序来在 IIS 中注册网站。那里似乎完全没有问题。

这是我在 IIS 中注册网站时使用的代码。

Dim manager As New ServerManager
Dim site As Site = manager.Sites.Add("MyControl", "http", "*:80:test.localhost", "C:\\inetpub\wwwroot\MyControl")

manager.ApplicationPools.Add("MyControl")
site.ApplicationDefaults.ApplicationPoolName = "MyControl"

manager.CommitChanges()

该网站在 IIS 中注册正常。类型为 http,主机名为 test.localhost,端口为 80,ip 为 *。符合预期。

我修改了主机文件,添加了以下行:127.0.0.1 test.localhost 以便导航到 http://test.localhost将在 IIS 上重定向到我们的网站。

这应该意味着重定向到我们的默认页面 default.html,它位于 inetpub/wwwroot/MyControl 的根目录中。

但这并没有发生。我得到一个空白页面,没有标题,来源是空白,但不是找不到页面。此外,如果我导航到 http://test.localhost/default.html我自己,我得到一个空白页面,但标题是:MyControl。如果我现在查看源代码,我可以看到它找到了文件,但没有显示任何内容。

如果我在IIS中手动设置网站,没有问题。

如有任何想法,我们将不胜感激。

编辑:

到目前为止,还不错。我现在已经让它与上面的代码一起工作。你问发生了什么?我不知道。

现在我需要使用同一个网站,但要使用 SSL 证书安装它。

我正在使用这个代码

Module Main
<DllImport("advapi32.DLL", SetLastError:=True)>
Public Function LogonUser(ByVal username As String, ByVal domain As String,
ByVal password As String, ByVal logonType As Integer, ByVal logonProvider As Integer,
ByRef token As IntPtr) As Integer
End Function

Sub Main()
'Load indstillinger fra app.config
Dim sslPath As String = ConfigurationManager.AppSettings("sslPath")
Dim sslPassword As String = ConfigurationManager.AppSettings("sslPassword")
Dim remoteUsername As String = ConfigurationManager.AppSettings("remoteUsername")
Dim remotePassword As String = ConfigurationManager.AppSettings("remotePassword")

'Lav en store, således at vi kan få fat i vores ssl certifikat
Dim store As X509Store = New X509Store(StoreName.My, StoreLocation.LocalMachine)
store.Open(OpenFlags.OpenExistingOnly Or OpenFlags.ReadWrite)

'Generer credentials til impersonation
Dim adminToken As IntPtr = IntPtr.Zero
Dim admin As WindowsIdentity = Nothing
Dim context As WindowsImpersonationContext = Nothing

'Login med den specificerede bruger
LogonUser(remoteUsername, System.Environment.MachineName, remotePassword, 9, 0, adminToken) '9 afspejler logintype og 0 afspejler loginprovider - Ingen idé om hvad det har af betydning
admin = New WindowsIdentity(adminToken)
context = admin.Impersonate()

'Import af SSL certifikat
Dim certificate As X509Certificate2 = New X509Certificate2(sslPath, sslPassword) 'Sti til SSL certifikat og password til at installere dette
store.Add(certificate)

'Opret en manager og en config til oprettelse af site
Dim manager As New ServerManager
Dim config As Microsoft.Web.Administration.Configuration = manager.GetApplicationHostConfiguration()

'Opret site i IIS med det valgte certifikat
Dim site As Site = manager.Sites.Add("MyControl", "*:443:webmail.jcdhotel.dk", "C:\\inetpub\wwwroot\MyControl", certificate.GetCertHash())

'Kræv SSL
Dim accessSection As Microsoft.Web.Administration.ConfigurationSection = config.GetSection("system.webServer/security/access", "MyControl")
accessSection("sslFlags") = "Ssl"

'Opret en applicationpool specifikt til MyControl og sæt denne til default
manager.ApplicationPools.Add("MyControl")
site.ApplicationDefaults.ApplicationPoolName = "MyControl"

'Luk store
store.Close()

'Gem ændringer og revert impersonation
manager.CommitChanges()
context.Undo()
End Sub

再次。该代码在 IIS 中注册网站并设置证书就好了。绑定(bind)看起来像这样

Error

我再次修改了我的主机文件,添加了行 127.0.0.1 webmail.jcdhotel.dk

我可以去链接https://webmail.jcdhotel.dk并收到一个空白页,来源为空白。然后我可以转到 https://webmail.jcdhotel.dk/default.html标题将被设置,我现在可以检查来源,但页面仍然是空白。

再次感谢您的帮助,并在此先感谢您!

编辑:

新信息。通过手动尝试使用 SSL 证书将网站添加到 IIS,我收到以下错误:

SSL Error

希望这有助于阐明问题。

编辑:

最后编辑,希望 :D

我现在可以使用 SSL 证书手动添加绑定(bind)。问题是由于证书安装不正确。这让我走到了最后的障碍。

使用 vb.net 将证书添加到商店时。如何勾选“允许导出证书”? - 因为这解决了我手动添加证书时的问题。

最佳答案

在尝试之后,似乎一切都是这样,我最终得到了这段代码

<DllImport("advapi32.DLL", SetLastError:=True)>
Public Function LogonUser(ByVal username As String, ByVal domain As String,
ByVal password As String, ByVal logonType As Integer, ByVal logonProvider As Integer,
ByRef token As IntPtr) As Integer
End Function

Sub Main()
'Load indstillinger fra app.config
Dim sslPath As String = ConfigurationManager.AppSettings("sslPath")
Dim sslPassword As String = ConfigurationManager.AppSettings("sslPassword")
Dim remoteUsername As String = ConfigurationManager.AppSettings("remoteUsername")
Dim remotePassword As String = ConfigurationManager.AppSettings("remotePassword")

'Lav en store, således at vi kan få fat i vores ssl certifikat
Dim store As X509Store = New X509Store(StoreName.My, StoreLocation.LocalMachine)

store.Open(OpenFlags.ReadWrite)

'Generer credentials til impersonation
Dim adminToken As IntPtr = IntPtr.Zero
Dim admin As WindowsIdentity = Nothing
Dim context As WindowsImpersonationContext = Nothing

'Login med den specificerede bruger
LogonUser(remoteUsername, System.Environment.MachineName, remotePassword, 9, 0, adminToken) '9 afspejler logintype og 0 afspejler loginprovider - Ingen idé om hvad det har af betydning
admin = New WindowsIdentity(adminToken)
context = admin.Impersonate()

'Import af SSL certifikat
Dim certificate As X509Certificate2 = New X509Certificate2(sslPath, sslPassword, X509KeyStorageFlags.PersistKeySet) 'Sti til SSL certifikat og password til at installere dette

store.Add(certificate)

'Opret en manager og en config til oprettelse af site
Using manager As New ServerManager
Dim config As Microsoft.Web.Administration.Configuration = manager.GetApplicationHostConfiguration()

'Opret site i IIS med det valgte certifikat
Dim site As Site = manager.Sites.Add("MyControl", "*:443:webmail.jcdhotel.dk", "C:\inetpub\wwwroot\MyControl", certificate.GetCertHash())

'Kræv SSL
Dim accessSection As Microsoft.Web.Administration.ConfigurationSection = config.GetSection("system.webServer/security/access", "MyControl")
accessSection("sslFlags") = "Ssl"

'Opret en applicationpool specifikt til MyControl og sæt denne til default
manager.ApplicationPools.Add("MyControl")
site.ApplicationDefaults.ApplicationPoolName = "MyControl"

'Luk store
store.Close()

'Gem ændringer og revert impersonation
manager.CommitChanges()
context.Undo()
End Using
End Sub

问题出在线路上

Dim site As Site = manager.Sites.Add("MyControl", "*:443:webmail.jcdhotel.dk", "C:\inetpub\wwwroot\MyControl", certificate.GetCertHash())

我习惯了 C# 以及您如何转义字符串。所以我错误地弹出了一个额外的\使该行看起来像这样

Dim 站点 As Site = manager.Sites.Add("MyControl", "*:443:webmail.jcdhotel.dk", "C:\\inetpub\wwwroot\MyControl", certificate.GetCertHash() )

关于html - IIS 8 - 使用 SSL 证书时找不到 default.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20659120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com