Tag Archives: iis

IIS: SSL Certificate Disappearing after import

After import the certificate into IIS, when I navigated away from the Server Certificates window, the certificate would disappear.
I could see the certificate in the server’s Personal Certificate Store using MMC (Microsoft Management Console) but it wouldn’t show up in IIS.

After investigate, I found below solution for this issue:

Save the three portions of the certificate into three separate files (Note: The Intermediate Certificate is optional, if you were not supplied with one, just skip the steps involving it):

privatekey.txt – Copy and paste the contents of the private key including the begin and end lines.
certificate.txt – Copy and paste the contents of the Regular Certificate including the begin and end lines.
intermediate.txt – Copy and paste the contents of the Intermediate Certificate including the begin and end lines.

Upload all these files to a linux server, and run

openssl pkcs12 -export -out certificate.pfx -inkey privatekey.txt -in certificate.txt -certfile intermediate.txt

then import the certificate.pfx into IIS

WIN2003 IIS最小权限分配的批处理文件

直接转的网上的,个人认为,还是多了。只需要给temp权限就够了
 
保存为bat文件,执行! 
@echo off  
echo "虚拟主机C盘权限设定"  
echo "Author:an85.com"  
 
echo "删除C盘的everyone的权限"  
cd/  
cacls "%SystemDrive%" /r "everyone" /e  
cacls "%SystemRoot%" /r "everyone" /e  
cacls "%SystemRoot%/Registration" /r "everyone" /e  
cacls "%SystemDrive%/Documents and Settings" /r "everyone" /e  
 
echo "删除C盘的所有的users的访问权限"  
cd/  
cacls "%SystemDrive%" /r "users" /e  
cacls "%SystemDrive%/Program Files" /r "users" /e  
cacls "%SystemDrive%/Documents and Settings" /r "users" /e  
 
cacls "%SystemRoot%" /r "users" /e  
cacls "%SystemRoot%/addins" /r "users" /e  
cacls "%SystemRoot%/AppPatch" /r "users" /e  
cacls "%SystemRoot%/Connection Wizard" /r "users" /e  
cacls "%SystemRoot%/Debug" /r "users" /e  
cacls "%SystemRoot%/Driver Cache" /r "users" /e  
cacls "%SystemRoot%/Help" /r "users" /e  
cacls "%SystemRoot%/IIS Temporary Compressed Files" /r "users" /e  
cacls "%SystemRoot%/java" /r "users" /e  
cacls "%SystemRoot%/msagent" /r "users" /e  
cacls "%SystemRoot%/mui" /r "users" /e  
cacls "%SystemRoot%/repair" /r "users" /e  
cacls "%SystemRoot%/Resources" /r "users" /e  
cacls "%SystemRoot%/security" /r "users" /e  
cacls "%SystemRoot%/system" /r "users" /e  
cacls "%SystemRoot%/TAPI" /r "users" /e  
cacls "%SystemRoot%/Temp" /r "users" /e  
cacls "%SystemRoot%/twain_32" /r "users" /e  
cacls "%SystemRoot%/Web" /r "users" /e  
cacls "%SystemRoot%/WinSxS" /r "users" /e  
 
cacls "%SystemRoot%/system32/3com_dmi" /r "users" /e  
cacls "%SystemRoot%/system32/administration" /r "users" /e  
cacls "%SystemRoot%/system32/Cache" /r "users" /e  
cacls "%SystemRoot%/system32/CatRoot2" /r "users" /e  
cacls "%SystemRoot%/system32/Com" /r "users" /e  
cacls "%SystemRoot%/system32/config" /r "users" /e  
cacls "%SystemRoot%/system32/dhcp" /r "users" /e  
cacls "%SystemRoot%/system32/drivers" /r "users" /e  
cacls "%SystemRoot%/system32/export" /r "users" /e  
cacls "%SystemRoot%/system32/icsxml" /r "users" /e  
cacls "%SystemRoot%/system32/lls" /r "users" /e  
cacls "%SystemRoot%/system32/LogFiles" /r "users" /e  
cacls "%SystemRoot%/system32/MicrosoftPassport" /r "users" /e  
cacls "%SystemRoot%/system32/mui" /r "users" /e  
cacls "%SystemRoot%/system32/oobe" /r "users" /e  
cacls "%SystemRoot%/system32/ShellExt" /r "users" /e  
cacls "%SystemRoot%/system32/wbem" /r "users" /e  
 
echo "添加iis_wpg的访问权限"  
cacls "%SystemRoot%" /g iis_wpg:r /e  
cacls "%SystemDrive%/Program Files/Common Files" /g iis_wpg:r /e  
 
cacls "%SystemRoot%/Downloaded Program Files" /g iis_wpg:c /e  
cacls "%SystemRoot%/Help" /g iis_wpg:c /e  
cacls "%SystemRoot%/IIS Temporary Compressed Files" /g iis_wpg:c /e  
cacls "%SystemRoot%/Offline Web Pages" /g iis_wpg:c /e  
cacls "%SystemRoot%/System32" /g iis_wpg:c /e  
cacls "%SystemRoot%/Tasks" /g iis_wpg:c /e  
cacls "%SystemRoot%/Temp" /g iis_wpg:c /e  
cacls "%SystemRoot%/Web" /g iis_wpg:c /e  
 
echo "添加iis_wpg的访问权限[.net专用]"  
cacls "%SystemRoot%/Assembly" /g iis_wpg:c /e  
cacls "%SystemRoot%/Microsoft.NET" /g iis_wpg:c /e  
 
echo "添加iis_wpg的访问权限[装了MACFEE的软件专用]"  
cacls "%SystemDrive%/Program Files/Network Associates" /g iis_wpg:r /e  
 
echo "添加users的访问权限"  
cacls "%SystemRoot%/temp" /g users:c /e

用SmarterStats分析网站日志

偶然之间从国外找到一个分析网站日志的软件,SmartStats。
可以自动监测日志格式,包括iis,apache等。分析项目也很多,非常具体。对于网络管理员来说,非常好的工具。
有免费版可以下载,免费版只支持1个站点。注册后支持多个站点,并且可以有更多的定制项目。
唯一不爽的是,处理速度。。。。。我1个月的日志,处理了4个多小时。可能与我日志太大有关吧。。。。

IIS网站防盗链下载的解决方案

什么是盗链

  “盗链”的定义是:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。

  为什么会产生盗链

  一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户端的。如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条Http请求,当这个请求被处理后那么这个图片文件会被传送到客户端,然后浏览器回将图片安放到页面的正确位置,就这样一个完整的页面也许要经过发送多条Http请求才能够被完整的显示。基于这样的机制,就会产生一个问题,那就是盗链问题:就是一个网站中如果没有起页面中所说的信息,例如图片信息,那么它完全可以将这个图片的连接到别的网站。这样没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易地发现,这样显然,对于那个被利用了资源的网站是不公平的。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。

  我遇到的盗链

  我的网站遇到最多的是两类盗链,一是图片盗链,二是文件盗链。曾经有一个访问量极大的网站盗链我网站的图片,一天竟然消耗了数G的流量。同时,我站放的不少几十兆的大型软件也常遭到文件盗链,大量消耗我站资源。

  盗链的解决方案

  其实通过WEB服务器的URL过滤技术,这个伤脑筋的问题会很容易得到解决。  

  如果WEB服务器用的是APACHE的话,那么使用APACHE自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查REFER,如果REFER的信息来自其他网站则禁止访问所需要的资源。

  那么,IIS支持UrlRewrite吗?

  答案很简单,不支持。但是我们可以通过安装第三方服务器扩展让IIS支持。 

  目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。 

  下载地址在: http://www.helicontech.com/download/

  这里只有ISAPI Rewrite的一个LITE版本是免费的,其它都是trial版本。ISAPI Rewrite Lite的版本功能不支持虚拟站点配置,元数据监测和自动缓存清理。 但是基本的UrlRewrite功能都支持。

  如何进行UrlRewrite的设置? 

  isapi_rewrite利用正则表达式进行替换规则的表示。 

  下面是一个简单的例子,我想让我们的用户输入 http://localhost/test-12314.html 实际上访问的是 http://localhost/test.asp?id=12314 。那么我们的匹配表达式应该是 /test-([0-9]*).html 对应的格式化表达式应该为 /test.asp?id=$1 。 

  进行正则表达式的编写的时候,可以利用isapi_rewrite提供的正则表达式测试工具(默认安装提供),进行调试。做好了匹配表达式和格式化表达式,我们可以把它们放到安装目录下的httpd.ini里面。文件保存后,不需重新启动iis即可生效。 

  对于我的网站,我防盗链的方法是在httpd.ini里面加入如下语句

RewriteCond Host: (.+)

RewriteCond Referer: (?!http://1. *).*

RewriteRule .*.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

  然后重启IIS,这时防盗链就开始起作用了,其他网站盗链过来的请求都会被拒绝。

  至此,我也终于可以摆脱了被盗链的烦恼了。