当前位置: 首页 > news >正文

商城网站建设都需要多少钱艺术网站建设

商城网站建设都需要多少钱,艺术网站建设,网课培训机构排名前十,网站开发自我介绍Quick Start 下列说明将使用变量名 $CATALINA_BASE 来表示多数相对路径所基于的基本目录。如果没有为 Tomcat 多个实例设置 CATALINA_BASE 目录#xff0c;则 $CATALINA_BASE 就会设定为 $CATALINA_HOME 的值#xff0c;也就是你安装 Tomcat 的目录。 在 Tomcat 中安装并配置…Quick Start 下列说明将使用变量名 $CATALINA_BASE 来表示多数相对路径所基于的基本目录。如果没有为 Tomcat 多个实例设置 CATALINA_BASE 目录则 $CATALINA_BASE 就会设定为 $CATALINA_HOME 的值也就是你安装 Tomcat 的目录。 在 Tomcat 中安装并配置 SSL/TLS 支持只需遵循下列几步即可。详细信息可参看文档后续介绍。 创建一个 keystore 文件保存服务器的私有密钥和自签名证书Windows%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSAUNIX$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA 指定密码为“changeit”。 取消对 $CATALINA_BASE/conf/server.xml 中 “SSL HTTP/1.1 Connector” 一项的注释状态。按照下文中配置一节所描述的方式进行修改。SSL/TLS 简介 安全传输层协议TLS与其前辈加密套接字SSL都是用于保证 Web 浏览器与 Web 服务器通过安全连接进行通信的技术。利用这些技术我们所要传送的数据会在一端进行加密传输到另一端后再进行解密在处理数据之前。这是一种双向的操作服务器和浏览器都能在发送数据前对它们进行加密处理。 SSL/TLS 协议的另一个重要方面是认证。当我们初始通过安全连接与 Web 服务器进行通信时服务器将提供给 Web 浏览器一组“证书”形式的凭证用来证明站点的归属方以及站点的具体声明。某些情况下服务器也会请求浏览器出示证书来证明作为操作者的“你”所宣称的身份是否属实。这种证书叫做“客户端证书”但事实上它更多地用于 B2B企业对企业电子商务的交易中而并非针对个人用户。大多数启用了 SSL 协议的 Web 服务器都不需要客户端认证。 SSL/TLS 与 Tomcat 一定要注意的是通常只有当 Tomcat 是独立运行的 Web 服务器时才有必要去配置 Tomcat 以便利用加密套接字。具体细节可参看 Security Considerations Document。当 Tomcat 以 Servlet/JSP 容器的形式在其他 Web 服务器比如 Apache 或 Microsoft IIS背后运行时通常需要配置的是主 Web 服务器用主服务器来处理与用户的 SSL 连接。主服务器一般会利用所有的 SSL 相关功能将任何只有 Tomcat 才能处理的请求进行解密后再传给 Tomcat。同样Tomcat 会返回明文形式的响应这些响应在被传输到用户浏览器之前会被主服务器进行加密处理。在这种情境下Tomcat 知道主服务器与客户端的所有通信都是通过安全连接进行的因为应用要求但 Tomcat 自身无法参与到加密与解密的过程中。 证书 为了实现 SSLWeb 服务器必须对每一个接受安全连接的外部接口IP 地址配备相应的证书。这种设计方式的理论在于服务器必须提供某种可信的保证尤其对于接收敏感信息而言保证它的拥有者是你所认为的角色。限于本章篇幅不再赘述关于证书的详细解释只需要把它认为成是一种 IP 地址的“数字驾照”即可。它声明了与站点相关的组织以及一些关于站点拥有者或管理者的基本联系信息。 这种“数字驾照”的持有者对其进行了加密签名从而使得它极难伪造。对于参与电子商务的站点或者其他一些身份验证显得非常重要的商业交易来说证书通常都是从一些比较权威公正的 CA Certificate Authority认证机构购买的比较知名的 CA 有 VeriSign 、Thawte 等。这些证书可经电子验证。实际上CA 会保证所颁发证书的真实性所以你完全可以放心。 不过在很多情况下验证并不是问题的关键。管理员可能只想保证服务器所传输与接收的数据是秘密的不会被某些人通过连接来窃取。幸运的是Java 提供了一个简单的命令行工具keytool。它能轻松创建一个“自签名”的证书这种自签名证书是由用户生成的一种证书未经任何知名 CA 给予官方保证因此它的真实性也无法确定。再说一次是否认证完全根据你的需求。 运行 SSL 通常需要注意的一些内容 当用户首次访问你站点上的安全页面时页面通常会提供给他一个对话框包含证书相关细节比如组织及联系方式等并且询问他是否愿意承认该证书为有效证书然后再进行下一步的事务。一些浏览器可能会提供一个选项允许永远承认给出的证书的有效性这样就不会在用户每次访问站点时打扰他们了。但有些浏览器不会提供这种选项。一旦用户承认了证书的有效性那么在整个的浏览器会话期间证书都被认为是有效的。 虽然 SSL 协议的意图是尽可能有助于提供安全且高效的连接但从性能角度来考虑加密与解密是非茶馆耗费计算资源的因此将整个 Web 应用都运行在 SSL 协议下是完全没有必要的开发者需要挑选需要安全连接的页面。对于一个相当繁忙的网站来说通常只会在特定页面上使用 SSL 协议也就是可能交换敏感信息的页面比如登录页面、个人信息页面、购物车结账页面可能会输入信用卡信息等等。应用中的任何一个页面都可以通过加密套接字来请求访问只需将页面地址的前缀 http: 换成 https: 即可。绝对需要安全连接的页面应该检查该页面请求所关联的协议类型如果发现没有指定 https:则采取适当行为。 最后在安全连接上使用基于名称的虚拟主机可能会造成一定的问题。这正是 SSL 协议的局限。SSL 握手过程即客户端浏览器接收服务器证书必须发生在 HTTP 请求被访问前。因此包含虚拟主机名称的请求信息不能先于认证而确定也不可能为单个 IP 地址指定多个证书。如果单个 IP 地址的所有虚拟主机都需要利用同样证书来认证的话那么多个虚拟主机不应该干涉服务器通常的 SSL 操作。但是要注意一点多数客户端浏览器会将服务器域名与证书中的多个域名如果存在的话进行对比如果域名出现不匹配则浏览器会向用户显示警告信息。一般来说生产环境中通常只有使用基于地址的虚拟主机利用 SSL。 配置 1. 准备证书密钥存储库 Tomcat 目前只能操作 JKS、PKCS11、PKCS12 格式的密钥存储库。JKS 是 Java 标准的“Java 密钥存储库”格式是通过 keytool 命令行工具创建的。该工具包含在 JDK 中。PKCS12 格式一种互联网标准可以通过 OpenSSL 和 Microsoft 的 Key-Manager 来。 密钥存储库中的每一项都通过一个别名字符串来标识。尽管许多密码存储库实现都在处理别名时不区分大小写但区分大小写的实现也是允许的。比如PKCS11 规范需要别名是区分大小写的。为了避免别名大小写敏感的问题不建议使用只有大小写不同的别名。 为了将现有的证书导入 JKS 密码存储库请查阅关于 keytool 的相关文档位于 JDK 文档包里。注意OpenSSL 经常会在密码前加上易于理解的注释但 keytool 并不支持这一点。所以如果证书里的密码数据前面有注释的话在利用 keytool 导入证书前一定要清除它们。 要想把一个已有的由你自己的 CA 所签名的证书导入使用 OpenSSL 的 PKCS12 密码存储库应该执行如下命令 openssl pkcs12 -export -in mycert.crt -inkey mykey.key-out mycert.p12 -name tomcat -CAfile myCA.crt-caname root -chain 更复杂的实例请参考 OpenSSL 文档的相关内容。 下面这个实例展示的是如何利用终端命令行从零开始创建一个新的 JKS 密码存储库该密码库包含一个自签名的证书。 Windows %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA Unix $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA RSA 算法应该作为首选的安全算法这同样也能保证与其他服务器和组件的大体的兼容性。 该命令将在用户的主目录下创建一个新文件.keystore。要想指定一个不同的位置或文件名可以在上述的 keytool命令上添加 -keystore 参数后跟到达 keystore 文件的完整路径名。你还需要把这个新位置指定到 server.xml 配置文件上见后文介绍。例如 Windows %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA-keystore \path\to\my\keystore Unix $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/my/keystore 执行该命令后首先会提示你提供 keystore 的密码。Tomcat 默认使用的密码是 changeit全部字母都小写当然你可以指定一个自定义密码如果你愿意。同样你也需要将这个自定义密码在 server.xml 配置文件内进行指定稍后再予以详述。 接下来会提示关于证书的一般信息比如组织、联系人名称等等。当用户试图在你的应用中访问一个安全页面时该信息会显示给用户所以一定要确保所提供的信息与用户所期望看到的内容保持一致。 最后还需要输入密钥密码key password这个密码是这一证书而不是存储在同一密码存储库文件中的其他证书的专有密码。keytool 提示会告诉你如果按下回车键则自动使用密码存储库 keystore 的密码。当然除了这个密码你也可以自定义自己的密码。如果选择自定义密码那么不要忘了在 server.xml 配置文件中指定这一密码。 如果操作全部正常我们现在就会得到一个服务器能使用的有证书的密码存储库文件。 2. 编辑 Tomcat 配置文件 Tomcat 能够使用两种 SSL 实现 JSSE 实现它是Java 运行时从 1.4 版本起的一部分。APR 实现默认使用 OpenSSL 引擎。详细的配置信息依赖于所用的实现方式。如果通过指定通用的 protocolHTTP/1.1 来配置连接起那么就会自动选择 Tomcat 所要用到的实现方式。如果安装使用的是 APR比如你安装了 Tomcat 的原生库那么它将使用 APR 的 SSL 实现否则就将使用 Java 所提供的 JSSE 实现。 由于这两种 SSL 实现在 SSL 支持的配置属性上有很大差异所以强烈建议不要自动选择实现方式。选择实现应该采取这种方式在连接器的 protocol 属性中通过指定类名来确立实现方式。 定义 JavaJSSE连接器不管 APR 库是否已经加载都可以使用下列方式 !-- Define a HTTP/1.1 Connector on port 8443, JSSE NIO implementation -- Connector protocolorg.apache.coyote.http11.Http11NioProtocolport8443 .../!-- Define a HTTP/1.1 Connector on port 8443, JSSE NIO2 implementation -- Connector protocolorg.apache.coyote.http11.Http11Nio2Protocolport8443 .../!-- Define a HTTP/1.1 Connector on port 8443, JSSE BIO implementation -- Connector protocolorg.apache.coyote.http11.Http11Protocolport8443 .../ 另一种方法指定 APR 连接器APR 库必须可用则使用 !-- Define a HTTP/1.1 Connector on port 8443, APR implementation -- Connector protocolorg.apache.coyote.http11.Http11AprProtocolport8443 .../ 如果使用 APR则会出现一个选项从而可以配置另一种 OpenSSL 引擎。 Listener classNameorg.apache.catalina.core.AprLifecycleListenerSSLEnginesomeengine SSLRandomSeedsomedevice / 默认值为 Listener classNameorg.apache.catalina.core.AprLifecycleListenerSSLEngineon SSLRandomSeedbuiltin / 所以要想使用 APR 实现一定要确保 SSLEngine 属性值不能为 off。该属性值默认为 on如果指定的是其他值它也会成为一个有效的引擎名称。 SSLRandomSeed 属性指定了一个熵源。生产系统需要可靠的熵源但熵可能需要大量时间来采集因此测试系统会使用非阻塞的熵源比如像“/dev/urandom”从而能够更快地启动 Tomcat。 最后一步是在 $CATALINA_BASE/conf/server.xml 中配置连接器$CATALINA_BASE 表示的是 Tomcat 实例的基本目录。Tomcat 安装的默认 server.xml 文件中包含一个用于 SSL 连接器的 Connector 元素的范例。为了配置使用 JSSE 的 SSL 连接器你可能需要清除注释并按照如下的方式来编辑它。 !-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -- Connectorprotocolorg.apache.coyote.http11.Http11NioProtocolport8443 maxThreads200schemehttps securetrue SSLEnabledtruekeystoreFile${user.home}/.keystore keystorePasschangeitclientAuthfalse sslProtocolTLS/ APR 连接器会使用很多不同的属性来设置 SSL特别是密钥和证书。 APR 配置范例如下 !-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -- Connectorprotocolorg.apache.coyote.http11.Http11AprProtocolport8443 maxThreads200schemehttps securetrue SSLEnabledtrueSSLCertificateFile/usr/local/ssl/server.crtSSLCertificateKeyFile/usr/local/ssl/server.pemSSLVerifyClientoptional SSLProtocolTLSv1TLSv1.1TLSv1.2/ 每个属性所用的配置信息与选项都是强制的可查看 HTTP 连接器配置参考文档中的 SSL 支持部分。一定要确保对所使用的连接器采用正确的属性。BIO、NIO 以及 NIO2 连接器都使用 JSSE然而APR以及原生的连接器则使用 APR。 port属性指的是 Tomcat 用以侦听安全连接的 TCP/IP 端口号。你可以随意改变它比如改成 https 的默认端口号 443。但是在很多操作系统中在低于 1024 的端口上运行 Tomcat 必须进行一番特殊的配置限于篇幅本文档不再赘述。 如果在这里你更改了端口号那么也应该在 非 SSL 连接器的 redirectPort 属性值。从而使 Tomcat 能够根据 Servlet 规范自动对访问带有安全限制指定需要 SSL页面的用户进行重定向。 配置完全部信息后你应该像往常一样重新启动 Tomcat从而能够利用 SSL 来访问任何 Tomcat 所支持的 Web 应用了。比如 https://localhost:8443/ 你将看到跟往常一样的 Tomcat 主页面除非你修改了 ROOT 应用。如果出现问题这样做没有任何效果请看下面的故障排除小节。 从 CA 处安装证书 如果想从 CA比如 verisign.com、thawte.com、trustcenter.de处获取并安装证书请阅读之前的内容然后按照下列操作进行 创建一个本地证书签名请求CSR 为了从选择的 CA 处获取证书必须创建一个证书签名请求CSR。CA 通过 CSR 来创建出一个证书用来证明你的网站是“安全的”。创建 CSR 的步骤如下 创建一个本地自签名证书如前文所述 keytool -genkey -alias tomcat -keyalg RSA-keystore your_keystore_filename 注意在某些情况下为了创建一个能耐生效的证书你必须在“first- and lastname”字段中输入网站的域名比如www.myside.org。 然后利用下列代码创建 CSR keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr-keystore your_keystore_filename 现在我们得到了一个 certreq.csr 的文件可以把它提交给 CA 了CA 的网站上应有关于如何提交的文档审核通过后就会收到一个证书。 导入证书 接下来可以把证书导入到本地密钥存储库中。首先你需要把链证书Chain Certificate或根证书Root Certificate导入到密钥存储库中。然后继续导入证书。 从获得证书的 CA 那里下载链证书。 如选择 Verisign.com 的商业证书则点击http://www.verisign.com/support/install/intermediate.html。如选择 Verisign.com 的试用证书则点击http://www.verisign.com/support/verisign-intermediate-ca/Trial_Secure_Server_Root/index.html。如选择 Trustcenter.de则点击http://www.trustcenter.de/certservices/cacerts/en/en.htm#server。如选择 Thawte.com则点击http://www.thawte.com/certs/trustmap.html。 将链证书导入密钥存储库 keytool -import -alias root -keystore your_keystore_filename-trustcacerts -file filename_of_the_chain_certificate 最后导入你的新证书 keytool -import -alias tomcat -keystore your_keystore_filename-file your_certificate_filename 疑难排解 以下列出了一些在设置 SSL 通信时经常会遇到的问题及其解决方法 当 Tomcat 启动时出现这样的异常信息“ava.io.FileNotFoundException: {some-directory}/{some-file} not found.” 这很有可能是因为 Tomcat 无法在指定位置处找到密钥存储库。默认情况下密钥存储库文件应以 .keystore 为后缀位于用户的 home 目录下也许很你的设置不同。如果密钥存储库文件在别处则需要在 Tomcat 配置文件的 Factory 元素中添加一个 keystoreFile 属性。 当 Tomcat 启动时出现这样的异常信息“java.io.FileNotFoundException: Keystore was tampered with, or password was incorrect.” 假如排除了有人恶意篡改密钥存储库文件的因素那么出现这样的异常最有可能是因为 Tomcat 现在所用的密码不同于你当初创建密钥存储库文件时所用密码。为了解决这个问题你可以重新创建密钥存储库文件或者在 Tomcat 配置文件的 Connector 元素中添加或更新一个 keystoreFile 属性。注意密码都是区分大小写的。 当 Tomcat 启动时出现这样的异常“java.net.SocketException: SSL handshake error javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.” 出现这样的异常很有可能是因为 Tomcat 无法在指定的密钥存储库中找到服务器密钥的别名。查看一下 Tomcat 配置文件的 Connector 元素中所指定的 keystoreFile 和 keyAlias 值是否正确。注意keyAlias 值可能区分大小写。 如果出现了其他问题可以求助 TOMCAT-USER 邮件列表你可以在该邮件列表内找到之前消息的归档文件以及订阅和取消订阅的相关信息。Tomcat 邮件列表的链接是http://tomcat.apache.org/lists.html。 在应用中使用 SSL 跟踪会话 这是一个 Servlet 3.0 规范中的新功能。由于它将 SSL 会话 ID 关联到物理的客户端服务器连接上所以导致了一些约束与局限 Tomcat 必须有一个属性 isSecure 设为 true 的连接器。如果 SSL 连接器通过代理或硬件加速器来管理则它们必须填充 SSL 请求报头参见 SSLValve从而使 SSL 会话 ID 可见于 Tomcat。如果 Tomcat 终止了 SSL 连接则不可能采用会话重复因为 SSL 会话 ID 在两个端点处都是不一样的。为了开启 SSL 会话跟踪只需使用上下文侦听器将上下文的跟踪模式设定为 SSL 即可如果还开启了其他跟踪模式则会优先使用它。如下所示 package org.apache.tomcat.example;import java.util.EnumSet;import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.SessionTrackingMode;public class SessionTrackingModeListener implements ServletContextListener {Overridepublic void contextDestroyed(ServletContextEvent event) {// Do nothing}Overridepublic void contextInitialized(ServletContextEvent event) {ServletContext context event.getServletContext();EnumSetSessionTrackingMode modes EnumSet.of(SessionTrackingMode.SSL);context.setSessionTrackingModes(modes);}} 注意SSL 会话跟踪是针对 BIO、NIO 以及 NIO2 连接器来实现的目前还没有针对 APR 连接器的实现。 其他技巧 要想从请求中访问 SSL 会话 ID可使用 String sslID (String)request.getAttribute(javax.servlet.request.ssl_session_id); 关于这一方面的其他内容可参看Bugzilla。 为了终止 SSL 会话可以使用 // Standard HTTP session invalidation session.invalidate();// Invalidate the SSL Session org.apache.tomcat.util.net.SSLSessionManager mgr (org.apache.tomcat.util.net.SSLSessionManager)request.getAttribute(javax.servlet.request.ssl_session_mgr); mgr.invalidateSession();// Close the connection since the SSL session will be active until the connection // is closed response.setHeader(Connection, close); 注意由于使用了 SSLSessionManager 类所以这段代码是专门针对 Tomcat 的。当前只适用于 BIO、NIO 以及 NIO2 连接器不适合 APR/原生连接器。转载于:https://www.cnblogs.com/pingxin/p/p00056.html
http://www.pierceye.com/news/507761/

相关文章:

  • 空间 网站网站建设哪个好
  • 公司网站域名价格云南免费网站建设
  • 网站跳转域名不变常见网站架构
  • 山东省建设厅电工证查询网站网站标题的选择
  • 网站建设是属于软件吗电话销售哪里找客户电话
  • 用vue做网站的实例网站制作郑州
  • 五个网站想自己在家做外贸网站
  • 收费的电影网站怎么做网页设计图片的应用
  • 班级网站建设步骤橘子皮主题wordpress
  • 网站模板源文件网站制作需求文档
  • 青岛注册公司网站建网站需要那些步骤
  • 深圳做网上商城网站小蘑菇网站建设软件
  • 广州住建网站网站空间购买价格
  • 金华永康网站建设公司做网站的优点
  • 有免费的微网站制作吗瑞安哪里有培训做网站的
  • 苏州住房和城乡建设局网站wordpress中文书
  • 盐城市滨海县建设局网站wordpress 4.8.1 漏洞
  • 荆州市城市建设投资开发有限公司网站百度人工服务24小时
  • 永久域名购买昆明网站建设优化企业
  • 自适应网站模板下载网页设计培训哪好
  • 做门窗网站便宜的vps租用网站
  • 龙岗附近公司做网站建设多少钱公司行业类型有哪些
  • 188旅游网站管理系统源码做外贸有那些网站平台
  • 江苏网站建设要多少钱近三个月以来的国际新闻
  • 旬阳做网站免费漫画软件
  • asp相册网站源码企业网站建设的上市公司
  • 做网站和软件哪个挣钱国家企业信用信息公示系统山西
  • 做网站前的准备什么二建证考试需要什么条件
  • 男女做a视频网站asp单页网站源码
  • 手机页面网站模板怎么卖做淘宝保健品药品在哪个网站找素材