如何在WebService中使用SSL证书 webservice 怎么使用证书认证,说的详细一点 谢谢

作者&投稿:叔媚 (若有异议请与网页底部的电邮联系)

安装SSL证书主要将SSL证书配置到服务器环境。安装教程:网页链接

目前全球服务器环境主要分为4个类型:Apache、IIS、Nginx、Tomcat



你好,使用方法如下:
 web service在企业应用中常常被用作不同系统之间的接口方式。但是如果没有任何安全机制的话,显然是难以委以重任的。比较直接的web service加密方式就是使用HTTPS方式(SSL证书加密)加密连接,并且只允许持有信任证书的客户端连接,即SSL双向认证。这样就保证了连接来源的可信度以及数据在传输过程中没有被窃取或篡改。通过HTTPS加密方式访问web service具体方法如下:
  【准备工作】
  (1)检查JDK的环境变量是否正确。本文使用JDK 1.6
  (2)准备web服务器,这里选用TOMCAT 6.0
  (3)准备web service服务端和客户端。
  【生成证书】
  这里用到的文件,这里存放在D:/SSL/文件夹内,其中D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。
  1生成服务端证书
  开始-运行-CMD-在dos窗口执行下执行命令:
  keytool -genkey -v -aliastomcat -keyalg RSA -keystore D:/SSL/server/tomcat.keystore -dname"CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" -validity 3650-storepass zljzlj -keypass zljzlj
  说明:
  keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help
  -genkey 创建新证书
  -v 详细信息
  -alias tomcat 以”tomcat”作为该证书的别名。这里可以根据需要修改
  -keyalg RSA 指定算法
  -keystoreD:/SSL/server/tomcat.keystore 保存路径及文件名
  -dname"CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" 证书发行者身份,这里的CN要与发布后的访问域名一致。但由于这里是自签证书,如果在浏览器访问,仍然会有警告提示。真正场景中建议申请CA机构(wosign)签发的SSL证书更安全。
  -validity 3650证书有效期,单位为天
  -storepass zljzlj 证书的存取密码
  -keypass zljzlj 证书的私钥
  2 生成客户端证书
  执行命令:
  keytool ‐genkey ‐v ‐aliasclient ‐keyalg RSA ‐storetype PKCS12 ‐keystore D:/SSL/client/client.p12 ‐dname"CN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN" ‐validity 3650 ‐storepassclient ‐keypass client
  说明:
  参数说明同上。这里的-dname 证书发行者身份可以和前面不同,到目前为止,这2个证书可以没有任何关系。下面要做的工作才是建立2者之间的信任关系。
  3 导出客户端证书
  执行命令:
  keytool ‐export ‐aliasclient ‐keystore D:/SSL/client/client.p12 ‐storetype PKCS12 ‐storepass client‐rfc ‐file D:/SSL/client/client.cer
  说明:
  -export 执行导出
  -file 导出文件的文件路径
  4 把客户端证书加入服务端证书信任列表
  执行命令:
  keytool ‐import ‐aliasclient ‐v ‐file D:/SSL/client/client.cer ‐keystoreD:/SSL/server/tomcat.keystore ‐storepass zljzl
  说明:
  参数说明同前。这里提供的密码是服务端证书的存取密码。
  5 导出服务端证书
  执行命令:
  keytool -export -aliastomcat -keystore D:/SSL/server/tomcat.keystore -storepass zljzlj -rfc -fileD:/SSL/server/tomcat.cer
  说明:
  把服务端证书导出。这里提供的密码也是服务端证书的密码。
  6 生成客户端信任列表
  执行命令:
  keytool -import -fileD:/SSL/server/tomcat.cer -storepass zljzlj -keystoreD:/SSL/client/client.truststore -alias tomcat –noprompt
  说明:
  让客户端信任服务端证书
  【 配置服务端为只允许HTTPS连接】
  1 配置Tomcat 目录下的/conf/server.xml
  Xml代码:
  <Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"clientAuth="true"
sslProtocol="TLS"keystoreFile="D:/SSL/server/tomcat.keystore"
keystorePass="zljzlj"truststoreFile="D:/SSL/server/tomcat.keystore"
truststorePass="zljzlj" />
  说明:
  在server.xml里面这段内容本来是被注释掉的,如果想使用https的默认端口443,请修改这里的port参数。其中的clientAuth="true" 指定了双向证书认证。
  2 配置服务端项目web.xml
  在<welcome-file-list>之后增加Xml代码:
   <!-- 强制SSL配置,即普通的请求也会重定向为SSL请求 -->
   <security-constraint>
   <web-resource-collection>
  <web-resource-name>SSL</web-resource-name>
  <url-pattern>/service/*</url-pattern><!--全站使用SSL <url-pattern>/*</url-pattern>-->
  </web-resource-collection>
  <user-data-constraint>
  <description>SSL required</description>
  <!-- CONFIDENTIAL: 要保证服务器和客户端之间传输的数据不能够被修改,且不能被第三方查看到 -->
  <!-- INTEGRAL: 要保证服务器和client之间传输的数据不能够被修改 -->
  <!-- NONE: 指示容器必须能够在任一的连接上提供数据。(即用HTTP或HTTPS,由客户端来决定)-->
  <transport-guarantee>CONFIDENTIAL</transport-guarantee>
   </user-data-constraint>
   </security-constraint>
  说明:
  这里限制了WEB service服务地址的访问必须为https连接。<url-pattern>要根据你的web service服务地址配置。
  【修改客户端代码】
  在执行访问之前,增加Java代码:
  System.setProperty("javax.net.ssl.trustStore","D:/SSL/client/client.truststore");
  System.setProperty("javax.net.ssl.trustStorePassword","zljzlj");
  System.setProperty("javax.net.ssl.keyStoreType","PKCS12");
  System.setProperty("javax.net.ssl.keyStore","D:/SSL/client/client.p12");
  System.setProperty("javax.net.ssl.keyStorePassword","client");
  StringendPoint="https://127.0.0.1:8443/easbCut/services/ApplyFormService";
  ...
  通过设置参数来指定客户端连接时所使用的客户端证书,这里还可以采用修改JVM启动参数的的方式来执行,但出于不影响其他功能的考虑,这里采用System.setProperty的方式来设置这些参数,在使用结束后,可以还原这些参数配置。做为客户端的开发者,可以把拿到的证书文件后,只执行步骤3。

要在Web服务中使用SSL证书,可以按照以下步骤进行操作:
获取SSL证书:可以从受信任的证书颁发机构(CA)申请SSL证书。
配置Web服务器:具体的配置步骤因所使用的 Web 服务器而异。以下是一些常见的 Web 服务器的配置示例:
Apache HTTP Server:在 Apache 的配置文件中,找到 SSL 模块的相关配置。通常,您需要指定证书文件的路径和私钥文件的路径。
Microsoft IIS:在 IIS 管理器中,为您的网站创建一个新的 HTTPS 绑定。选择要使用的证书,并指定端口号(默认为 443)。其他配置可以根据需要进行设置。
配置端口和访问权限:确保防火墙和网络设备允许通过 SSL(默认为 443 端口)进行访问。如果您使用的是云服务提供商,例如 AWS 或 Azure,还需要相应地配置安全组或网络安全组。
测试和验证:重新启动Web 服务器,并使用浏览器访问使用 SSL 的网站。确保浏览器显示已成功建立安全连接,并且证书的相关信息正确显示。

首先在受信任的CA机构申请SSL证书,然后按照服务器类型去安装,全部流程下来有点麻烦,最好找个服务好的CA机构帮你全部搞定,GDCA就可以提供这些服务。

如何在Web服务器上设置SSL~

Gworg申请SSL证书后进入服务器使用对用服务器环境SSL安装即可。

  cxf 可以在配置文件
  
  
  
  
  ">
  
  
  
  
  
  
  
  
  
  ">
  
  
  ">
  
  
  
  

  java客户端
  org.apache.cxf.endpoint.Client client = ClientProxy.getClient(service);
  Map outProp = new HashMap();
  outProp.put(WSHandlerConstants.ACTION, WSHandlerConstants.SIGNATURE);
  outProp.put(WSHandlerConstants.SIG_PROP_FILE,""); outProp.put(WSHandlerConstants.USER, "client");
  outProp.put(WSHandlerConstants.PW_CALLBACK_CLASS,密码);
  outProp.put(WSHandlerConstants.SIG_KEY_ID, "IssuerSerial");
  client.getOutInterceptors().add(new WSS4JOutInterceptor(outProp));

  Map inProp = new HashMap();
  inProp.put(WSHandlerConstants.ACTION, WSHandlerConstants.SIGNATURE);
  inProp.put(WSHandlerConstants.SIG_PROP_FILE,"");
  client.getInInterceptors().add(new WSS4JInInterceptor(inProp));

WebService里面怎样使用session
答:1.需要在服务端的方法中加入[WebMethod(EnableSession=true)]修饰方法,2.在客户端,要在实例化了webservice代理类之后,要为它的CookieContainer 实例化一个 new CookieContainer();这样才能使用session存储状态。3.另外在多个webservice代理中,只要含有相同的cookie,就能共用相同的session,其中的cookie通过...

如何在WebService中使用SSL证书
答:(1)检查JDK的环境变量是否正确。本文使用JDK 1.6 (2)准备web服务器,这里选用TOMCAT 6.0 (3)准备web service服务端和客户端。【生成证书】这里用到的文件,这里存放在D:/SSL/文件夹内,其中D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。1生成服务...

什么是webservice,什么情况下使用,如何使用?
答:使用Webservice,你不再像以前那样,要先从第三方购买、安装软件组件,再从你的应用程序中调用这些组件。你只需要直接调用远端的Webservice就可以了。举个例子,你想在你的应用程序中确认用户输入的邮件地址,那么,你只需把这个地址直接发送给相应的Webservice,这个Webservice就会帮你查阅街道地址、城市、省区和邮政编码等...

Web应用技巧(一)如何调用WebService?
答:使用Web Service,再也不必像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件;只需要直接调用远端的Web Service就可以了。举个例子,要在应用程序中确认用户输入的地址,只需把这个地址直接发送给相应的Web Service,这个Web Service 就会帮你查阅街道地址、城市、省区和邮政编码等信息,确认这个地址...

C#中webservice的作用是什么?
答:1. Web Service,也称为XML Web Service,是一种基于SOAP的Web技术,允许不同系统在Web上进行通信和数据交换。它通过WSDL文件进行服务描述,并使用UDDI进行注册,以实现跨平台的互操作性。2. SOAP(Simple Object Access Protocol)是Web Service的通信协议,基于XML格式,使用HTTP(S)或SMTP等协议进行...

C#中webservice的作用是什么?
答:1.Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。\x0d\x0aXML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据...

windows服务中怎么使用webservice-CSDN论坛
答:1、先建一个WebService(ASP.NET Web 服务应用程序)2、建这个WebService的虚拟目录 3、执行生成一个文件 { C:\Program Files\Microsoft Visual Studio 8\VC>wsdl /language:C# /out:c:\myProxyClass.cs http://hostServer:88/ImportData.asmx?WSDL 这个工具(方法)是针对一个webservice生成一个能...

java的WebService最大的好处是什么,最多的使用场合是什么?
答:1.web service本身不能做太多事,各种功能都是你自己编程实现的,但是你的程序只能自己用,自己看,别人根本不知道你的程序是什么样的。而web service就是规定了一种方式,告诉你将你的程序如何的部署到服务器上,然后大家通过一种协商好的地址能找到你的程序的说明,说明的格式也是大家都协商好的,所以...

使用C#创建webservice及调用方式?
答:1、创建Webservice服务,需要在VS中首先创建一个Web工程,再添加一个Webservice类即可,。2、编写Webservice的方法,以下以VS默认的HelloWord为例。另外在实际使用中,出现过部署到ESB后不识别的情况,后经测试发现需要增加以下内容:3、在Webservice类上点击右键-在浏览器中查看,可以查看webservice服务,...

webservice接口是什么?它有什么作用?
答:webService接口是一种常用的短信群发提交接口,使用时可以象调用一般函数一样调用WebService的方法。作用是:该接口主要用于客户自身的软件、网站或其他产品,需要将短信群发功能集成于软件、网站内作为产品整体功能的一部分,在这种情况下可以使用WebService接口来提交短信。实现WebService接口的短信群发功能需要有...