tomcat7 配置HTTPS OPENSSL生成证书

因为在项目中要使用HTTPS,所以参考了网上的很多文章,终于将环境配置好了,在此做个记录,给有需要的同学,少走弯路。

我的环境:WIN7 64位 +TOMCAT7 + OPENSSL1.0f
1. 首先安装OPENSSL1.0f软件及其依赖的软件,这个软件是别人编译好的,不需要自己编
译。我们主要是使用OPenSSL软件生成证书等信息,其它两个软件是OpenSSL运行时需
要。OPENSSL安装完成后,一般是在C盘,如我电脑上安装在C:\OpenSSL-Win64目录
中。注意我的操作系统是64位的,所以需要64位软件,如果是32位的系统,请下载相应的
软件。
Win64OpenSSL-1_0_1f.exe,
ActivePerl-5.16.3.1603-MSWin32-x64-296746.msi,
vcredist_x64.exe

2. 用管理员身份运行CMD命令, 进入到C:\OpenSSL-Win64\bin目录,执行openssl.exe
命令,或者直接以管理员身份运行openssl.exe。

3. 首先要生成服务器端的私钥(key文件):
genrsa -des3 -out server.key 1024


4. 生成证书请求csr文件,交给CA签名后形成服务端自己的证书
req -new -key server.key -out server.csr -config 
openssl.cfg

5. CSR文件必须有CA的签名才可形成证书.OPENSSL可以生成自己的CA证书
req -new -x509 -keyout ca.key -out ca.crt -config openssl.cfg


6. 用生成的CA的证书为刚才生成的server.csr文件签名
ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cfg


使用CA签名时,需要做一些准备工作,当我们安装完成OPENSSL时,在安装目录下的bin\PEM目录中有一个demoCA目录,如我本机的demoCA的路径为:C:\OpenSSL-Win64\bin\PEM\demoCA,请将整个目录拷贝到bin目录中,如我本机的目录为:C:\OpenSSL-Win64\bin\demoCA,并在demoCA目录中建立一个newcerts目录,我本机的地址为:
C:\OpenSSL-Win64\bin\demoCA\newcerts。

生成证书以后,就可以将其放到tomcat7/conf的目录下(建议),并修改conf/server.xml配置文件,在windows下部署修改如下:


<Connector port="8443" maxHttpHeaderSize="8192"  
maxThreads="150"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
SSLEnabled="true"
SSLCertificateFile="${catalina.base}/conf/server.crt"
SSLCertificateKeyFile="${catalina.base}/conf/server.key"
SSLPassword="password"/>


如果是单个工程需要https访问,修改工程中的web.xml文件,增加如下内容:
<!-- 增加ssl请求 -->
<login-config>
<!-- 认证方式基于客户端证书-->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- 此元素确定应该保护的资源 -->
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<!-- url-pattern适用于直接访问这些资源的客户机,不适用于转发-->
<url-pattern>/*</url-pattern>
</web-resource-collection>
<!-- 访问相关资源时使用任何传输层保护 -->
<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>



在LIUNX下部署会有一些区别,首先要将证书和密钥放入到密码库中,并且密码库的格式必须是JDK可以识别的,因为我们直接用的是OPENSSL生成的密钥和证书,所以先将执行如下命令,将密钥和证书放入到pkcs12的证书文件中。
7.创建server端的pkcs12文件
pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name demo_server

注意-name demo_server,这个是指定keystore的别名。

8.转换pkcs12为JKS keystore文件,这个过程需要用到jetty.jar, 在命令行中执行如下JAVA命令,切记要使用管理员身份运行cmd命令。

java org.mortbay.util.PKCS12Import server.p12  server.jks


生成server.jks后,就可以将其放到tomcat7/conf的目录下(建议),并修改conf/server.xml配置文件如下:
<Connector port="8443" protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="150"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
SSLEnabled="true"
keystoreFile="/opt/apache-tomcat7.0.42/conf/server.jks"
keystorePass="password"/>


protocol属性的取值很重要,如果修改为其它值,可能使用OPENSSL软件生成的密钥库文件就不支持,需要使用JDK命令生成的密钥库。
好了,通过https://localhost:8443端口访问,看是否可以显示tomcat首页。

相应的软件我已经上传到百度云上面。此处不能上传超过10M的软件。
[url]http://pan.baidu.com/share/link?shareid=1291566681&uk=3339208821[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Tomcat 中部署使用自签名证书时,需要执行以下步骤: 1. 将私钥和证书合并成一个 PKCS12 格式文件 使用 OpenSSL 库可以将私钥和证书合并成一个 PKCS12 格式文件,可以通过以下命令: ``` openssl pkcs12 -export -in certificate.pem -inkey privateKey.pem -out certificate.p12 -name "tomcat-cert" ``` 这将使用证书 `certificate.pem` 和私钥 `privateKey.pem` 生成一个 PKCS12 格式文件,并将其保存到名为 `certificate.p12` 的文件中。在这个例子中,我们将别名设置为 `tomcat-cert`。 在执行此命令时,需要输入一个密码以保护私钥和证书文件。 2. 将 PKCS12 文件复制到 Tomcat 的 conf 目录中 将生成的 PKCS12 文件 `certificate.p12` 复制到 Tomcat 的 `conf` 目录中。 3. 配置 Tomcat 的 server.xml 文件 打开 Tomcat 的 `conf/server.xml` 文件,找到以下配置: ``` <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" ... /> ``` 将其修改为以下配置: ``` <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="${catalina.home}/conf/certificate.p12" keystoreType="PKCS12" keystorePass="your_password" alias="tomcat-cert" /> ``` 其中,`keystoreFile` 指定 PKCS12 文件的路径,`keystoreType` 设置为 PKCS12,`keystorePass` 是生成 PKCS12 文件时设置的密码,`alias` 是用于识别证书和私钥的别名。 4. 重新启动 Tomcat 重新启动 Tomcat,然后使用浏览器访问 `https://localhost:8443`,你应该可以看到使用自签名证书的 Tomcat 主页。在访问时,浏览器可能会显示警告,因为自签名证书不被认为是可信的。你可以选择信任该证书并继续访问。 注意:在生产环境中,你应该使用 CA 颁发的证书,以确保通信的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值