售前咨询
技术支持
渠道合作

SSL配置:通向WEB服务器的安全道路

当下互联网可以用千疮百孔来形容,各种的安全事件被爆出,近几年来SSL证书的横空出世,为维护互联网安全提供了安全保护膜。

SSL证书

Secure socket layer(SSL)协议最初由Netscape企业发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准。由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装数字证书,或服务器证书就可以激活服务器功能了。

SSL安全证书主要用于发送安全电子邮件、访问安全站点、网上招标与投标、网上签约、网上订购、安全网上公文传送、网上办公、网上缴费、网上缴税以及网上购物等安全的网上电子交易活动。

SSL配置的步骤:

服务器端单向认证:

第一步:进入jdk的安装文件路径下面的bin目录;

第二步:在bin目录下输入以下命令

keytool -genkey -v -alias mykey -keyalg RSA -validity 3650 -keystore c:\sdust.keystore

-dname “CN=你的ip,OU=cn,O=cn,L=cn,ST=cn,c=cn” -storepass 123456 -keypass 123456

说明:

keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help

-genkey 创建新证书

-v详细信息

-alias以”mykey”作为该证书的别名。这里可以根据需要修改

-keyalgRSA 指定算法

-keysize  指定算法加密后密钥长度

-keystorec:\sdust.keystore保存路径及文件名

-validity3650证书有效期,单位为天

CN=你的ip,OU=cn,O=cn,L=cn,ST=cn,c=cn 基本信息的配置

CN=你的ip 这个配置务必注意

-storepass 123456789 -keypass 123456789 密码设置

第三步:生成的文件如下图所示

第四步:配置tomcat的server.xml文件[1]redirectPort端口号改为:443

<Connector connectionTimeout=”20000″ port=”80″ protocol=”HTTP/1.1″ redirectPort=”443″ useBodyEncodingForURI=”true”/>

[2]SSL HTTP/1.1 Connector定义的地方,修改端口号为:443

<Connector port=”443″ protocol=”org.apache.coyote.http11.Http11Protocol”

minSpareThreads=”5″ maxSpareThreads=”75″

enableLookups=”true” disableUploadTimeout=”true”

acceptCount=”100″  maxThreads=”200″ SSLEnabled=”true” scheme=”https” secure=”true”

keystoreFile=”C:/sdust.keystore” keystorePass=”123456″

clientAuth=”false” sslProtocol=”TLS” />

属性说明:clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile:服务器证书文件路径keystorePass:服务器证书密码truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书truststorePass:根证书密码

[3] AJP 1.3 Connector定义的地方,修改redirectPort为443

<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”443″/>

第五步: 重新启动Tomcat就可以了。

附加内容:若要使得应用只能通过https的方式访问,在该项目的web.xml文件中加入如下代码:

<login-config><!– Authorization setting for SSL –><auth-method>CLIENT-CERT</auth-method><realm-name>Client Cert Users-only Area</realm-name></login-config><security-constraint><!– Authorization setting for SSL –><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint><!–Require HTTPS for everything except /img (favicon) and /css.–><security-constraint><web-resource-collection><web-resource-name>HTTPSOrHTTP</web-resource-name><url-pattern>*.ico</url-pattern><url-pattern>/img/*</url-pattern><url-pattern>/css/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>NONE</transport-guarantee></user-data-constraint></security-constraint>测试 :在浏览器中输入:https://localhost:8443/,会弹出选择客户端证书界面,点击“确定”,会进入tomcat主页,地址栏后会有“锁”图标,表示本次会话已经通过HTTPS双向验证,接下来的会话过程中所传输的信息都已经过SSL信息加密。

可能存在的问题:

Eclipse中启动tomcat7.0,本地tomcat配置文件被eclipse恢复。

问题是这样的,在eclipse的servers配置项里,将tomcat的启动配置为了use tomcat location,但是每次在eclipse里publish项目都会把本地G:\tomcate7.0\apache-tomcat-7.0.29\conf下的配置文件(如:tomcat-user.xml添加了用户等信息)给重置,也就是里面添加的内容被清空了,回复到原来的样子:

问题解决方案:

你eclipse工程列表中应该 还有个 Servers 工程,下面会有Tomcat7的配置文件,你把里面的对应配置文件改了。每次是用这个文件来覆盖,tomcat下面的文件的。

特定的目录实现https访问

解决方案:

在web.xml文件中配置相应的路径

<security-constraint><!– Authorization setting for SSL –><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/login.html</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>

 

上一篇:

下一篇:

相关新闻