配置jboss4.2.3GA启用SSL

转帖保存

配置jbossHTTP请求走SSL(HTTPS协议)

l         生成keystore 文件

keytool生成server.keystore文件:

进入命令行

C:Documents and Settings ew>

keytool -genkey -alias tc-ssl -keyalg RSA -keystore c:server.keystore -validity 3650

会提示要求输入私钥信息。

Jboss配置HTTPS - 茫然的小鸟 - 茫然的小鸟

生成完后放入jboss安装目录serverdefaultconf

l         修改D:jboss-4.2.2.GAserverdefaultdeployjboss-web.deployerserver.xml文件

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS"

               keystoreFile="conf/server.keystore" keystorePass="123456"

               keystoreType="jks"

     />

去掉该段注释,添加代码(红色标注部分)

keystoreFile后面的内容是server.keystore文件的相对路径。

keystorePass后面的内容是生成文件是的密码。

l         修改完成后启动JBOSS,访问

https://127.0.0.1:8443/teamnet/project/login.jsp

Jboss配置HTTPS - 茫然的小鸟 - 茫然的小鸟

点击查看证书

Jboss配置HTTPS - 茫然的小鸟 - 茫然的小鸟

是否继续选择是。

Jboss配置HTTPS - 茫然的小鸟 - 茫然的小鸟

成功访问,注意端口号为配置文件中的8443,可以根据需要修改。

问题:访问原来的http://127.0.0.1:8080/teamnet/project/login.jsp也同样可以访问页面

l         修改web.xml文件,配置一个HtmlAdaptor添加代码:

    <security-constraint>

        <web-resource-collection>

            <web-resource-name>HtmlAdaptor</web-resource-name>

            <description>

                An example security config that only allows users with

                the role JBossAdmin to access the HTML JMX console web

                application

            </description>

            <url-pattern>/</url-pattern>

            <!-- <http-method>GET</http-method>

                <http-method>POST</http-method> -->

        </web-resource-collection>

        <!--<auth-constraint>

            <role-name>JBossAdmin</role-name>

            </auth-constraint> -->

        <user-data-constraint>

            <description>Protection should be CONFIDENTIAL</description>

            <transport-guarantee>CONFIDENTIAL</transport-guarantee>

        </user-data-constraint>

    </security-constraint>

再次启动JBOSS服务器,访问http://127.0.0.1:8080/teamnet/project/login.jsp

Jboss配置HTTPS - 茫然的小鸟 - 茫然的小鸟

 

可以看到访问http已经被自动的转到https协议进行访问。

Jboss配置HTTPS - 茫然的小鸟 - 茫然的小鸟

另外如果jboss有启用APR,那么启动时会报错(No Certificate file specified or invalid file format  ).

此时需要将传统配置中

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"  
。。。

的protocol修改为

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
。。。

最后: 

用合法证书替换自签名证书

依据上面文章的操作,在浏览器上打开https时,会提示证书错误。这个时候就需要去申请一个合法证书,收费的或是免费的都行。免费的证书将不会在

地址栏显示公司名称。

1.类似上文第一步,产生keystore文件

keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore keystore.jks -storepass password

输入名称时,要与域名相同,例如immtest.immerp.com

2.生成证书请求文件(CSR)

Keytool -certreq -alias server -sigalg SHA1withRSA -file certreq.csr -keystore keystore.jks -keypass password -storepass password

3.在证书申请网站,提交csr文件。审核通过后发将证书通过邮件发送回来。这里可以采用www.comodo.com提供的免费证书,90天有效,不限制续用。

4.邮件中一般包含一个或多个的CA证书和服务器域名证书。先分别导入CA证书,最后导入域名证书。

  CA证书的别名可以随意,域名证书的别名与生成keystore时的要相同.(下面用comodo颁发的证书为例)

keytool -import -trustcacerts -alias AddTrustExternalCARoot -file AddTrustExternalCARoot.crt -keystore keystore.jks

keytool -import -trustcacerts -alias intermediate1 -file ComodoUTNSGCCA.crt -keystore keystore.jks

keytool -import -trustcacerts -alias intermediate2 -file UTNAddTrustSGCCA.crt -keystore keystore.jks

keytool -import -trustcacerts -alias intermediate3 -file EssentialSSLCA_2.crt -keystore keystore.jks

keytool -import -trustcacerts -alias server -file immtest_immerp_com.crt -keystore keystore.jks

5.将文件keystore.jks放到替换原来的keystore文件,重启jboss。

原文地址:https://www.cnblogs.com/oisiv/p/3493937.html