网络应用服务 : Cisco CSS 11500 系列内容服务交换机

采样Keepalive脚本连接或断开到SSL运行以不可加密的握手的Web服务器

2016 年 10 月 24 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录


简介

此脚本将连接到运行 SSL 版本 3.0 的安全套接字层 (SSL) Web 服务器。连接到服务器,执行非加密握手,然后断开连接。本文也解决脚本Keepalive的实施。此脚本方法是对功能最密切相关的,存在于远程接入服务器(RAS)拨号客户端、终端程序和通用脚本实用程序。此功能使用WebNS的丰富的脚本语言。

完成与一简单的插槽Application Program Interface (API) (connect或断开或送信/收信),脚本Keepalive将产生用户能力剪裁他们自己的协议,或者请写步骤他们自己的顺序提供服务的一可靠的ALIVE或DOWN状态。没有脚本Keepalive功能,您当前被限制到FTP、HTTP、ICMP和TCP。然而,有了脚本Keepalive,您能通过写您自己的脚本保持在当前协议顶部。例如,您能开发特别的脚本,以连接到POP3服务器,无需要求WebNS建立保活类型的POP3。此功能允许客户创建他们自己自定义的Keepalive匹配他们的特定需求。虽然这是内容服务交换机(CSS)的一部分,但是 Cisco技术支持中心不支持自定义脚本(Cisco TAC)。

TAC不正式支持下面的脚本Keepalive,然而已被测试,并且是可用的,请您谨慎使用。

先决条件

要求

对WebNS富脚本语言的熟悉。

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • WebNS版本3.x和更高

  • CSS11x00 系列

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

示例脚本

下面脚本可以用于连接和断开到与不可加密的握手的一SSL Web服务器运行。



!--- No echo. 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
!--- Filename: ap-kal-ssl-port 
!--- Parameters: HostName 
! 
!--- Description: 
!--- This script will connect to an SSL Web server running SSL 
!--- version 3.0.  Connect to the server, do the non-encrypted 
!--- handshake, and disconnect. 
! 
!--- Parameters: 
!--- SSL-IP:  Address of the SSL Accellerator 
!--- SSL-Port:  Port for the SSL Accellerator 
! 
!--- Failure Upon: 
!--- 1. Not establishing a connection with the host. 
!--- 2. Not receiving a positive authentication. 
! 
!--- Author:  KGS 
!--- Last Tested:  9/27/01 
! 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

  

if ${ARGS}[#] "==" "0" 
 echo "Usage: ap-kal-ssl-port \'SSL-IP [SSL-Port]\'" 
 exit script 1 
endbranch 


!--- Defines. 

set HostName "${ARGS}[1]" 
set SSL-Port "443" 
if ${ARGS}[#] "GT" "1" 
  set SSL-Port "${ARGS}[2]" 
endbranch 
  


!--- Connect to the remote host.

set EXIT_MSG "Connection Failure for ${HostName}:${SSL-Port}" 
socket connect host ${HostName} port ${SSL-Port} tcp 2000 
  


!--- Send the GET request for the Web page.
 
set EXIT_MSG "Send: Failed" 


!--- Send over the hex for the fields: 
!--- [Handshake: 0x16] [Version: 0x03 0x00] [Length: 0x00 0x59] 
!--- [Client Hello: 0x01] [Length: 0x00 0x00 0x55] [Version: 0x03 0x00] 
!--- [Random (32bit) #: 0x39 -> 0xff] [Session Length: 0x20] 
!--- [Session ID (32bit): 0x3a -> 0x5d] [Cipher Length: 0x00 0x0e] 
!--- [Cipher Suite: 0x00 -> 0x00 (Last Byte in stream)] 

!--- Break the request into two send requests, as there is a 128 byte 
!--- max on quoted text parameters. 

socket send ${SOCKET} "1603000059010000550300392ae5530da35d89041b4beaa42891470e49
   351c3bfeb7631296139928dd7fff203a" raw 

socket send ${SOCKET} "9a0ed92a4e4f66d75ecce24c3a361efc26ab86310c4b9e7271a1317d9
   7635d000e0004ffe0000a00640062000300060100" raw 
  


!--- Wait for a good status code.
 
set EXIT_MSG "Waitfor: Failed" 


!--- Wait for a handshake message (0x16), paired with the version 
!--- of SSL (0x03 0x00). 

socket waitfor ${SOCKET} "160300" 2000 raw 


!--- Wait for the specific server hello (0x02). 

socket waitfor ${SOCKET} "02" 2000 raw 



!--- Wait for the version again (it appears twice: 0x03 0x00). 

socket waitfor ${SOCKET} "0300" 2000 raw 

no set EXIT_MSG 
socket disconnect ${SOCKET} 
  

exit script 0 

相关信息


Document ID: 47386