[转]ssl

 


ssl 的配置(down from network)
本任务的内容
概要
获得证书
生成 CSR
申请证书
安装证书
实施 SSL 连接


概要
本文介绍了如下内容:

如何设置和启用服务器证书,以使您的用户确信您的 Web 站点是合法的,他们发送给您的信息不会被泄露。


如何使用第三方证书启用安全套接层 (SSL),并概要介绍了生成用于获得第三方证书的证书签名请求 (CSR) 的过程。


如何为您的 Web 站点启用 SSL 连接。


如何为所有连接实施 SSL,并在您的客户和 Web 站点之间设置所需的加密长度。


您可以使用 Web 服务器的 SSL 安全功能进行两种类型的身份验证。可以使用服务器证书 让用户在发送个人信息(如信用卡号码)之前对您的 Web 站点进行验证。也可以使用 客户机证书 对请求您站点信息的用户进行身份验证。

本文假定您使用第三方证书颁发机构 (CA) 为您的 Web 服务器提供身份验证。

若要启用 SSL 服务器证书验证,并为您的用户提供他们希望的安全级别,您应该从第三方证书颁发机构获得证书。由第三方证书颁发机构颁发给您的组织的证书通常是与 Web 服务器密切关联的,更具体地说,是与您要绑定 SSL 的 Web 站点关联的。您可以用 Internet 信息服务 (IIS) 服务器创建自己的证书,但如果您这样做,您的客户必须将您默许为证书颁发机构。

本文假定:
您已经安装 IIS。

 


您已经创建并发布了 Web 站点,并希望用 SSL 保障其安全。


返回页首
获得证书
要开始获得证书的过程,必须生成一个 CSR。您需要通过 IIS 管理控制台生成 CSR,所以必须首先安装 IIS。本质上说,CSR 就是一个在您的服务器上生成的证书,当您向第三方证书颁发机构申请证书时,它用来验证有关您的服务器的计算机特定信息。CSR 就是一条用公钥/私钥对加密的文本消息。

通常在生成的 CSR 中将包含下列有关您计算机的信息:
组织


部门


国家


省/州


县市


公用名称

备注:公用名称通常由您的主机和它所属的域组成,如 xyz.com。这里,计算机是 .com 域的一部分,其名称为 XYZ。这可以是您公司域的根服务器,或仅为一个 Web 站点。
返回页首
生成 CSR
访问 IIS Microsoft 管理控制台 (MMC)。做法是:右键单击我的电脑并单击管理。这将打开计算机管理控制台。展开服务和应用程序部分。找到 Internet 信息服务并展开 IIS 控制台。


选择您希望安装服务器证书的特定 Web 站点。右键单击该站点并单击属性。


单击目录安全性选项卡。在 安全通信部分单击服务器证书。这将启动 Web 服务器证书向导。单击下一步。


选择创建一个新证书并单击下一步。


选择现在准备请求,但稍侯发送并单击下一步。


在名称字段输入您可以记住的名称。该名称将默认为您为其生成 CSR 的 Web 站点的名称。

备注:生成 CSR 时,您需要指定位长。加密密钥的位长决定了您发送给第三方证书颁发机构的加密证书的加密效果。位长越长,加密效果越好。大多数第三方证书颁发机构希望位长至少为 1024 位。


在组织信息部分,输入您的组织和部门信息。该信息必须准确无误,因为您将把这些凭证提供给第三方证书颁发机构,而您必须符合他们的证书授权。单击下一步进入站点的公用名称部分。


站点的公用名称部分负责将证书绑定到您的 Web 站点。对于 SSL 证书,输入主机名称和域名称。对于 Intranet 服务器,可以使用寄存站点的计算机的 NetBIOS 名称。单击下一步访问地理信息。


输入国家、省/州、县市或地区信息。写出您的省/州以及国家或地区的全称,不要使用缩写。单击下一步。


将文件保存为 .txt 文件。当您实际向证书颁发机构发送请求时,必须将该文件的内容粘贴到请求中。该文件将被加密,并包含内容的标题和脚注。请求证书时必须同时包含标题和脚注。

CSR 应该类似于下面内容:
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDATCCAmoCAQAwbDEOMAwGA1UEAxMFcGxhbjgxDDAKBgNVBAsTA1BTUzESMBAG
A1UEChMJTWljcm9zb2Z0MRIwEAYDVQQHEwlDaGFybG90dGUxFzAVBgNVBAgTDk5v
cnRoIENhcm9saW5hMQswCQYDVQQGEwJVUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
gYkCgYEAtW1koGfdt+EoJbKdxUZ+5vE7TF1ZuT+xaK9jEWHESfw11zoRKrHzHN0f
IASnwg3vZ0ACteQy5SiWmFaJeJ4k7YaKUb6chZXG3GqL4YiSKFaLpJX+YRiKMtmI
JzFzict5GVVGHsa1lY0BDYDO2XOAlstGlHCtENHOKpzdYdANRg0CAwEAAaCCAVMw
GgYKKwYBBAGCNw0CAzEMFgo1LjAuMjE5NS4yMDUGCisGAQQBgjcCAQ4xJzAlMA4G
A1UdDwEB/wQEAwIE8DATBgNVHSUEDDAKBggrBgEFBQcDATCB/QYKKwYBBAGCNw0C
AjGB7jCB6wIBAR5aAE0AaQBjAHIAbwBzAG8AZgB0ACAAUgBTAEEAIABTAEMAaABh
AG4AbgBlAGwAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBp
AGQAZQByA4GJAGKa0jzBn8fkxScrWsdnU2eUJOMUK5Ms87Q+fjP1/pWN3PJnH7x8
MBc5isFCjww6YnIjD8c3OfYfjkmWc048ZuGoH7ZoD6YNfv/SfAvQmr90eGmKOFFi
TD+hl1hM08gu2oxFU7mCvfTQ/2IbXP7KYFGEqaJ6wn0Z5yLOByPqblQZAAAAAAAA
AAAwDQYJKoZIhvcNAQEFBQADgYEAhpzNy+aMNHAmGUXQT6PKxWpaxDSjf4nBmo7o
MhfC7CIvR0McCQ+CBwuLzD+UJxl+kjgb+qwcOUkGX2PCZ7tOWzcXWNmn/4YHQl0M
GEXu0w67sVc2R9DlsHDNzeXLIOmjUl935qy1uoIR4V5C48YNsF4ejlgjeCFsbCoj
Jb9/2RM=
-----END NEW CERTIFICATE REQUEST-----
确认您的请求的细节。单击下一步完成,并退出 Web 服务器证书向导。


返回页首
申请证书
提交申请有多种方法。与您选择的证书提供者联系,申请并接收证书,同时确定符合您要求的最佳证书等级。

返回页首
安装证书
一旦第三方证书颁发机构成了您的服务器证书请求,您将通过电子邮件或下载站点接收到您的证书。证书必须安装在您希望提供安全通信的 Web 站点上。

若要安装证书,请执行下列步骤:
密钥只能用您早些时候生成的私钥加密。复制证书密钥的文本(它应该与您早些时候生成的密钥十分相似),并将其粘贴到一个 .txt 文档中。确保包含证书的标题和脚注。将文件保存为 Cert.txt。


按"生成 CSR"一节中所描述的步骤打开 IIS MMC。


进入要在上面安装证书的 Web 站点的属性对话框。


单击目录安全性选项卡并单击服务器证书。这将启动 Web 服务器证书向导。单击下一步。


选择处理挂起的请求并安装证书并单击下一步。


浏览到在第 1 步保存的文本文件。单击下一步两次,然后单击完成。


返回页首
实施 SSL 连接
安装了服务器证书后,您便可以对 Web 服务器的客户实施 SSL 安全通道通讯。首先,您需要启用端口 443,以便在 Web 站点上进行安全通信。为此,请按照下列步骤操作:
从计算机管理控制台中,右键单击您希望实施 SSL 的 Web 站点,然后单击属性。


单击 Web 站点选项卡。在 Web 站点标识部分,确保 SSL 端口字段的数值为 443 。


单击高级。您应该看到两个字段。IP 地址和 Web 站点的端口应该已经在此 Web 站点有多个标识字段中列出。如果没有列出端口 443,在此 Web 站点有多个 SSL 标识字段下面,单击添加。选择服务器的 IP 地址,并在 SSL 端口字段键入数值 443。单击确定。


启用了端口 443 后,您便可以实施 SSL 连接了。为此,请按照下列步骤操作:
单击目录安全性选项卡。请注意现在在安全通信部分,编辑是可用的。单击编辑。


选择需要安全通道 (SSL)。

备注:如果指定 128 位加密,使用 40 或 56 位加密强度浏览器的客户将无法与您的站点通讯,除非他们升级加密强度。
打开浏览器,试着用标准 http:// 协议连接您的 Web 服务器。如果实施了 SSL,您将收到如下错误消息:


The page must be viewed over a secure channel
The page you are trying to view requires the use of "https" in the address.(网页必须通过安全渠道查看。要求在您试图查看的网页地址中使用"https")

Please try the following: Try again by typing https:// at the beginning of the address you are attempting to reach.HTTP 403.4 - Forbidden:SSL required Internet Information Services(请再试一次,尝试在试图访问的地址前面键入 https://。HTTP 403.4 - 禁止:SSL 需要 Internet 信息服务)
Technical Information (for support personnel) Background:This error indicates that the page you are trying to access is secured with Secure Sockets Layer (SSL).(技术信息 - 供支持人员使用。说明:该错误表示您试图访问的页已用安全套接层 (SSL) 加密。)
现在您只能使用 https:// 协议连接 Web 站点。

 

 

 

 

 

 

 


 


asp.net安全(down form network)
ASP .NET 中的安全性

WEB 开发者这设计和实现应用程序时一定要 考虑安全性。安全有不同的类型和级别,应用程序所需的安全性各不相同,这取决于应用程序的作用,存贮的数据类型,能承担的风险,工作量,时间开销,金钱开销等。
基本的安全策略:
1. 服务器的设置和应用程序的设计
防止由于不安全的服务器设置和不恰当的应用程序设计危及WEB服务器的和数据的安全
2. 打补丁
防止由于服务器软件的缺陷危及WEB服务器的安全。
3. 访问控制
防止不恰当的访问设置危及WEB服务器的和数据的安全。
4. 审计和日志
跟踪那些访问站点的用户的访问内容和时间。
5. 使用SSL和其他的加密安全工具

服务器的设置和应用程序的设计:
选择合适的操作系统
选择用途
如果在一台计算机上运行WEB服务器,数据库服务器以及组件,存在很大的安全隐患,不要把数据库存放在暴露与Internet 上的WEB服务器上;同时向服务器添加更多用途时,也增加了安全隐患。在配置服务器时要明确每台服务器的用途。
选择服务
那些已运行但未使用的服务可能造成巨大的安全风险,如安装了FTP或SMTP服务但没有保护这些服务的使用端口,那么可能被利用一些众所周知的缺陷危及服务器的安全。如果没有时用某个服务就不要安装它,如果需要安装一些不经常使用的服务,应该将它们的设置为手动启动而不是自动启动。
 制定安全策略

密码
 不要使用弱密码和空白密码
一般健壮的密码 至少包含 :大写、小写、数字、非字母符号(如* % # $)中的3种,最小长度8位。
 密码存储的安全性
WEB 应用程序的一个常见问题是密码或其他敏感数具备存储在一个不安全的地方,纯文本文件(如ASP/ASP.NET页),Global.asa/Global.asax文件以及web的配置文件。当web服务器有安全缺陷是这是不安全的。
 解决方法:
1. 对于Intranet来说,如使用SQL_SERVER ,用信任连接服务器,该方法通过连接字符串的Trusted_Connection属性通知SQL_SERVER使用当前用户的NT登录信息进行登录。这对用户通过NT用户名和密码的NTLM登录应用程序很有用。
2. 使用appSetting配置节将连接字符串信息保存在Machine.config文件中,该文件不直接暴露在应用程序的Web空间中,(密码仍为纯文本文件)可以将包含Machine.config的目录和包含Web应用程序的目录放在不同的驱动器中。

用SSL保护通信
默认情况下,由HTTP 请求和响应发送的信息都是明文。在Web应用中最常用的加密形式是SSL(Secure Sockets Layer, 安全套接字层 协议)。要求在Web服务器与浏览器间进行安全通信的站点使用SSL创建并交换密钥,对客户端与服务器端的通信进行加密。通常的电子商务站点用这种方式保护信用卡信息。SSL 也可保护如SessionID cookie和使用基本验证或ASP.NET基于窗体验证时的登录信息。

默认情况下,SSL通信使用443端口(非SSL的Web通信使用80端口),通过在URL前加https://前缀表明是用SSL加密的。为Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。

设计一种跨应用程序多层的一致的身份验证和授权策略是一项很关键的任务。本章提供有关的指导,以帮助您为特定的应用程序方案开发合适的策略,还将帮助您选择最适合的身份验证和授权技术,并以正确的方式应用于您的应用程序。
阅读本章可以了解到如何执行以下任务:
· 选择适当的身份验证机制识别用户。
· 开发有效的授权策略。
· 选择适当的基于角色的安全类型。
· 比较和对比 .NET 角色与 Enterprise Services (COM+) 角色。
· 使用数据库角色。
· 在受信任的子系统资源访问模型与模拟/委派模型之间做出选择,后者用于在操作系统级别让原调用方安全上下文通过应用程序的多个层。
  在应用程序的各层上应用安全通信技术。
·  在 SSL 和 IPSec 之间选择。
·  配置安全通信。
·  使用 RPC 加密。
· 配置各种 ASP.NET 身份验证模式。
· 实施表单身份验证。
· 实施 Windows 身份验证。
· 使用 IPrincipal 和 IIdentity 对象。
· 有效地使用 IIS 和 ASP.NET 网关守卫。
· 配置和使用 ASP.NET 文件授权。
· 配置和使用 ASP.NET URL 授权。
· 使用主体权限要求和 IPrincipal.IsInRole 实施声明式、命令式和编程方式的基于角色的安全机制。
· 了解何时应该以及何时不应该在 ASP.NET Web 应用程序中使用模拟。
· 选择适当的帐户来运行 ASP.NET。
· 使用 ASP.NET 进程标识访问本地和网络资源。
· 使用本地 ASPNET 帐户访问远程 SQL Server 数据库。
· 从 ASP.NET 调用 COM 对象。
· 在 Web 宿主环境中有效地使用匿名 Internet 用户帐户。
· 在 ASP.NET Web 应用程序中存储机密。
· 保护会话和视图状态。
· 在网络场方案中配置 ASP.NET 安全性。
· 实施基于平台的 Web 服务安全解决方案。
· 开发 Web 服务的身份验证和授权策略。
· 在 Web 服务中使用客户端证书身份验证。
· 使用 ASP.NET 文件授权、URL 授权和 .NET 角色在 Web 服务中提供授权。
· 将原调用方的安全上下文传过 Web 服务。
· 使用 SSL 调用 Web 服务。
· 从 Web 服务访问本地和网络资源。
· 将身份验证凭据通过 Web 服务代理传递到 Web 服务。
· 为 Web 服务实施受信任的子系统模型。
· 从 Web 服务调用 COM 对象。

第一步:
客户端,用户输入
clientUsername,clientPassword
客户端,往服务器端发送clientUsername

第二步:
服务器,接收到clientUsername后,
查找databaseUsername
如果没有找到 -> Exception -> 设计一个方案告诉客户找不到用户名,终止

第三步:
服务器,得到databasePassword,
生成一个字符串serverStr1,serverStr2,并且储存起来
(其实放在session中还是其他地方,随便,但是不要放到客户端去,例如不要使用ViewState)

用databasePassword作为Key,对serverStr1进行加密,
得到serverStr1Encrypted=TDES(serverStr1,databasePassword)

用serverStr1作为Key,对serverStr2进行加密,
得到serverStr2Encrypted=TDES(serverStr2,serverStr1)

把serverStr1Encrypted,serverStr2Encrypted传到客户端

第四步:
客户端,得到serverStr1Encrypted,serverStr2Encrypted
用clientPassword作为Key,对serverStr1Encrypted进行解密,
得到clientStr1=~TDES(serverStr1Encrypted,clientPassword)
用clientStr1作为Key,对serverStr2Encrypted进行截密,
得到clientStr2=~TDES(serverStr1Encrypted,clientPassword)
如果其中一次解迷发生错误,-> Exception -> 那么告诉客户密码不对,终止

如果密码是对应的话,那么serverStr1和clientStr1是对应的。serverStr2和clientStr2对应。
这个过程目的就是使用password作为Key,然后在两者间安全地交换密匙str2

使用clientStr2作为Key,对clientPassword进行加密,
得到clientPasswordEncrypted=TDES(clientPassword,clientStr2)

把clientPasswordEncrypted送到服务器端

第五步:
服务器,得到clientPasswordEncrypted
根据会话状态,
测试:
clientPasswordEncrypted==TDES(databasePassword,serverStr2);
如果其中一次解迷发生错误,-> Exception -> 那么告诉客户密码不对,终止

如果相等?LoginAs(databaseUsername);

http://www.chinaitlab.com/www/special/ssl.asp
http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39172477,00.htm
http://www.mhdn.net/n/2002-04-15/4912.html


 

 

 

 

 

 

 


asp.net应用程序的安全配置(down from network)
[C#]
String MyURI = "https://www.example.com/";
WebRequest WReq = WebRequest.Create(MyURI);


ASP.NET 使用身份验证提供程序实现附加的身份验证方案,这些身份验证提供程序独立于 IIS 身份验证方案并且只用于 IIS 身份验证方案之后。ASP.NET 支持下列身份验证提供程序:

Windows(默认)
Forms
Passport
None
若要启用 ASP.NET 应用程序的身份验证提供程序,请使用 machine.config 或 Web.config 中的身份验证元素,如下所示:


  
  

每个 ASP.NET 身份验证提供程序都支持 OnAuthenticate 事件,该事件在身份验证过程中发生,您可以使用该事件实现自定义的身份验证方案。该事件的主要目的是将实现 IPrincipal 接口的自定义对象附加到上下文中。

使用何种 ASP.NET 身份验证提供程序通常取决于选择何种 IIS 身份验证方案。如果使用除“匿名”之外的任何 IIS 身份验证方案,可能需要使用 Windows 身份验证提供程序。否则,将使用 Forms、Passport 或 None。

有关更多信息,请参阅 元素和 ASP.NET 身份验证。

Windows
Windows 身份验证提供程序依靠 IIS 来执行所需的客户端身份验证。在 IIS 验证客户端身份后,它将安全令牌传递给 ASP.NET。ASP.NET 基于从 IIS 获得的安全令牌构造一个 WindowsPrincipal 类的对象,并将其附加到应用程序上下文中。有关更多信息,请参阅 WindowsAuthenticationModule 提供程序和 WindowsPrincipal 类。

优点
身份验证使用 Windows 帐户,所以不需要编写任何自定义的身份验证代码。
缺点
可能要求使用和管理单个 Windows 用户帐户。
此外,每一个 IIS 身份验证方案都有其自身的优缺点,在选择安全模型时,应对这些加以考虑。有关更多信息,请参阅 IIS 身份验证。

实现
若要实现 Windows 身份验证,请引用相应的 IIS 身份验证方案。有关更多信息,请参阅 IIS 身份验证。

Forms (Cookie)
Forms 身份验证提供程序是一个身份验证方案,它使应用程序可使用 HTML 窗体直接从客户端收集凭据。客户端直接向应用程序代码提交凭据以进行身份验证。如果应用程序验证该客户端的身份,则它向该客户端发出一个 cookie,该客户端在后面的请求中提交该 cookie。如果对于受保护资源的请求不包含该 cookie,则应用程序将该客户端重定向到登录页。当验证凭据时,应用程序可以用多种方法存储凭据,如配置文件或 SQL Server 数据库。有关更多信息,请参阅窗体身份验证提供程序。

注意 ISAPI 服务器扩展仅处理那些它拥有其应用程序映射的资源。例如,ASP.NET ISAPI 服务器扩展仅拥有特定资源(如 .asax、ascx、.aspx、.asmx 和 .config 文件,这里只给出这几个)的应用程序映射。默认情况下,ASP.NET ISAPI 服务器扩展以及随后的 Forms 身份验证提供程序不处理任何对非 ASP.NET 资源(如 .htm、.jpg 或 .gif 文件)的请求。
优点
允许使用任意条件自定义身份验证方案。
可用于身份验证或身份确认。
不需要相应的 Windows 帐户。
缺点
受制于 cookie 生存期的重放攻击,除非使用 SSL/TLS。
仅适用于映射到 Aspnet_isapi.dll 的资源。
实现
若要实现窗体身份验证,必须创建自己的登录页并且为未授权客户端重定向 URL。还必须为帐户验证创建自己的方案。下面是一个使用 Forms 身份验证的 Web.config 配置的示例:

 

  
     
  

由于正在实现自己的身份验证,通常需要为匿名身份验证配置 IIS。

Passport
Passport 身份验证提供程序是一个由 Microsoft 提供的集中式身份验证服务,它为成员站点提供一次登录和核心配置文件服务。Passport 是一个基于窗体的身份验证服务。当成员站点注册到 Passport 时,Passport 服务就授予一个站点特定的密钥。Passport 登录服务器使用该密钥加密和解密在成员站点和 Passport 登录服务器之间传递的查询字符串。有关更多信息,请参阅护照身份验证提供程序。

优点
支持跨多个域的一次登录。
与所有浏览器兼容。
缺点
为身份验证过程放置一个外部依赖项。
实现
若要实现 Passport,在使用之前必须向 Passport 服务注册您的站点、接受许可协议并安装 Passport SDK。必须如下配置应用程序的 Web.config 文件:

 

  

有关更多信息,请参阅 Microsoft Passport Web 站点 (http://www.passport.com/)。

None(自定义身份验证)
当根本不对用户进行身份验证或要开发自定义身份验证代码时,请将“None”指定为身份验证提供程序。例如,您可能想要使用 ISAPI 筛选器开发您自己的验证用户身份的身份验证方案,并手动创建 GenericPrincipal 类的对象。有关更多信息,请参阅 GenericPrincipal 类。

注意 ISAPI 服务器扩展仅处理那些它拥有其应用程序映射的资源。例如,ASP.NET ISAPI 服务器扩展仅拥有特定资源(如 .asax、ascx、.aspx、.asmx 和 .config 文件,这里只给出这几个)的应用程序映射。默认情况下,ASP.NET ISAPI 服务器扩展以及随后的 None(自定义)身份验证提供程序不处理任何对非 ASP.NET 资源(如 .htm、.jpg 或 .gif 文件)的请求。
优点
提供对身份验证过程的完全控制,有最大的灵活性。
如果不实现身份验证方法,则提供最高的性能。
缺点
自定义的身份验证方案很少会像操作系统提供的方案一样安全。
要求额外的工作来自定义身份验证方案。
实现
若要不进行身份验证或开发自己的自定义身份验证,请创建一个自定义的 ISAPI 筛选器来跳过 IIS 身份验证。请使用下面的 Web.config 配置:

 

 

 

 

 

 

 


毕业设计准备(安全子系统)downloand from csdn
为了执行授权,Web 服务经常需要能够对它们的调用方(其它应用程序)进行身份验证。客户端证书为 Web 服务提供了一种非常好的身份验证机制。如果您使用客户端证书,您的应用程序也会得益于客户端应用程序和 Web 服务之间的安全通道创建(使用安全套接字层 [SSL])。这样您就可以安全地在 Web 服务之间传送保密信息。SSL 确保消息的完整性和机密性。

本“如何做”包括调用配置为需要客户端证书的 Web 服务的分步指导。

 

注意:本“如何做”中的信息也适用于由 IIS 承载的远程组件。

 

要求

以下各项介绍了推荐的硬件、软件、网络基础结构、技巧和知识以及您需要的服务包。

●   带 Service Pack 2 的 Microsoft? Windows? 2000 Server 操作系统

●   Microsoft Visual Studio? .NET 开发系统

●   访问证书颁发机构 (CA) 以生成新的证书

●   一个已安装了服务器证书的 Web 服务器

有关安装 Web 服务器证书的更多信息,请参见本指南“参考”部分的“如何做:在 Web 服务器上设置 SSL”。

   

本“如何做”中的过程还要求您具有使用 Microsoft Visual C#? 开发工具进行 ASP.NET Web 开发的知识。

总结

本“如何做”包括如下过程:

1.   创建简单的 Web 应用程序

2.   将 Web 应用程序配置为需要客户端证书

3.   需要并安装客户端证书

4.   验证客户端证书操作

 

1. 创建简单的 Web 应用程序

u 创建简单的 Web 应用程序

1.   启动 Visual Studio .NET,创建一个名为 SecureApp 的新 C# ASP.NET Web 应用程序。

2.   从工具箱中将一个标签控件拖放到 WebForm1.aspx Web 窗体上,然后将其 ID 属性设置为 message。

3.   再拖放一个标签至 WebForm1.aspx 窗体上,然后将其 ID 属性设置为 certData。

 

4.   将下面的代码添加到 Page_Load 事件过程中。

 

string username;

username = User.Identity.Name;

message.Text = "Welcome " + username;

HttpClientCertificate cert = Request.ClientCertificate;

if (cert.IsPresent)

{

  certData.Text = "Client certificate retrieved";

}

else

{

  certData.Text = "No client certificate";

}

 

 5.   在“构建”菜单中,单击“构建解决方案”

 6.   启动 Internet Explorer 并导航至 http://localhost/SecureApp/WebForm1.aspx

页面应该显示“欢迎”消息(不显示用户名,因为用户尚未经过身份验证)和“没有客户端证书”。

7.   关闭 Internet Explorer。

 

2. 将 Web 应用程序配置为需要客户端证书

此过程使用 Internet 信息服务 (IIS) 将 Web 应用程序的虚拟目录配置为需要证书。

此过程假设您在 Web 服务器上安装了有效的证书。有关安装 Web 服务器证书的详细信息,请参见“如何做:在 Web 服务器上设置 SSL”。

u 将 Web 应用程序的虚拟目录配置为需要证书

1.   在 Web 服务主机上启动 IIS。

2.   导航到 SecureApp 虚拟目录。

3.   右击 SecureApp,然后单击“属性”。

4.   单击“目录安全性”选项卡。

5.   单击“安全通信”下的“编辑”。

如果无法使用“编辑”,则可能没有安装 Web 服务器证书。

6.   选择“要求安全通道 (SSL)”复选框。

7.   选择“要求客户端证书”选项。

8.   单击“确定”,然后再单击“确定”。

9.   在“继承覆盖”对话框中,单击“全选”,然后单击“确定”关闭“SecureApp 属性”对话框。

这会将新的安全设置应用于虚拟根目录下的所有子目录。

10.   要确认 Web 站点已正确配置,启动 Internet Explorer 并(使用 HTTPS)浏览到 https://localhost/secureapp/webform1.aspx

11.   Internet Explorer 显示“客户身份验证”对话框,要求您选择一个客户端证书。因为您尚未安装客户端证书,所以单击“确定”,确认显示通知您页面需要客户端证书的错误页面。

12.   关闭 Internet Explorer。

 

3. 需要并安装客户端证书

此过程安装客户端证书。您可以使用来自任何证书颁发机构的证书,也可以使用如后面几节所述的 Microsoft 证书服务来生成自己的证书。

此过程假设 Microsoft 证书服务是为待定申请配置的,这要求管理员专门颁发证书。它也可以配置为应证书申请自动颁发证书。

u 检查证书申请状态设置

1.   在 Microsoft 证书服务计算机上,从“管理工具”程序组中选择“证书颁发机构”。

2.   展开“证书颁发机构(本地)”,右击证书颁发机构并单击“属性”。

3.   单击“策略模块”选项卡,然后单击“配置”。

4.   检查默认操作。

以下过程假设“将证书申请状态设成待定”。选择“管理员必须专门颁发证书”。

 

u 申请客户端证书

1.   启动 Internet Explorer 并导航至 http://hostname/certsrv,其中 hostname 是安装 Microsoft 证书服务的计算机的名称。

2.   单击“申请证书”,然后单击“下一步”。

3.   在“选择申请类型”页上,单击“用户证书”,然后单击“下一步”。

4.   单击“提交”完成申请。

5.   关闭 Internet Explorer。

 

u 颁发客户端证书

1.   从“管理工具”程序组中启动“证书颁发机构”工具。

2.   展开您的证书颁发机构,然后选择“待定申请”文件夹。

3.   选择刚提交的证书申请,指向“操作”菜单上的“所有任务”,然后单击“颁发”。

4.   确认证书显示在“颁发证书”文件夹中,然后双击它进行查看。

5.   在“详细信息”选项卡上,单击“复制到文件”将证书保存为 Base-64 编码的 X.509 证书。

6.   关闭证书的属性窗口。

7.   关闭证书颁发机构工具。

 

u 安装客户端证书

1.   要查看证书,启动 Windows 资源管理器,导航至在前一过程中保存的 .cer 文件,然后双击它。

2.   单击“安装证书”,然后在“证书导入向导”的首页单击“下一步”。

3.   选择“根据证书类型,自动选择证书存储区”,然后单击“下一步”。

4.   单击“完成”完成向导。关闭确认消息框,然后单击“确定”关闭证书。

 

4. 验证客户端证书操作

此过程验证您是否可以使用客户端证书访问 SecureApp 应用程序。

u 验证客户端证书操作

1.   启动 Internet Explorer 并导航至 https://localhost/secureapp/webform1.aspx

2.   确认 Web 页成功显示。


 

posted @ 2005-06-22 11:03  烈马狂生  阅读(823)  评论(1编辑  收藏  举报