因为在项目中要使用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的软件。
http://pan.baidu.com/share/link?shareid=1291566681&uk=3339208821
分享到:
相关推荐
"openSSL生成证书以及在tomcat下的配置" openSSL是目前最流行的开源加密库之一,它提供了安全的数据传输和认证机制。在Web应用程序中,openSSL广泛应用于生成数字证书和私钥,从而确保数据的安全传输。今天,我们将...
要生成证书文件,我们需要使用openSSL提供的命令和工具。下面是生成服务器端证书文件的步骤: 1. 生成服务器端的私钥(key文件):`openssl genrsa -des3 -out server.key 1024` 2. 生成服务器端证书签名请求文件...
要为Tomcat配置HTTPS,我们主要需要以下几步: 1. **生成或获取SSL证书**: - 可以使用开源工具如OpenSSL自签发一个证书,适合测试环境。 - 对于生产环境,通常需要从权威的证书颁发机构(CA)购买一个正式的SSL...
这个过程涉及到的源码主要是Tomcat的服务器配置文件,而工具方面主要依赖OpenSSL来生成密钥对和证书,以及Java的keytool工具管理密钥库。 请注意,生产环境中通常不建议使用自签名证书,因为它们不会被主流浏览器...
这是我实战的笔记,全程直播。 #### Tomcat和Openssl构建HTTPS双向认证 ###### 选择HTTPS WEB服务器 Linux下安装OpenSSL 一、创建服务器证书、客户端...2、配置Tomcat支持HTTPS双向认证(服务器将认证客户端证书)
对于测试环境,自签名证书就足够了,可以使用OpenSSL工具生成。 在Tomcat的`conf`目录下,有两个主要的XML配置文件:`server.xml`和`web.xml`。`server.xml`是Tomcat的主要配置文件,而`web.xml`则定义了应用程序的...
### Tomcat HTTPS 加密配置详解 ...综上所述,无论是使用 JSSE 还是 OpenSSL 来配置 Tomcat 的 HTTPS 加密,都需要生成证书、配置 Tomcat 以及可能的其他相关设置。选择哪种方法取决于具体的场景需求和个人偏好。
3. 生成证书签名请求(csr):生成CSR文件的命令如下: ``` openssl req -new -key server.key -out server.csr ``` 在生成CSR文件时,需要输入国家、地区、组织、email以及common name(通常是你申请证书的域名...
3. **OpenSSL生成证书**:通常,我们使用OpenSSL工具生成自签名证书(用于测试环境)或CSR(Certificate Signing Request),然后提交给CA获取正式证书。命令如`openssl req -new -newkey rsa:2048 -keyout server....
4. **配置Tomcat**:将生成的服务器证书和私钥导入到Tomcat的 keystore 中,同时设置Tomcat服务器支持客户端认证,这通常需要修改`server.xml`中的`Connector`元素。 5. **DOS脚本**:文件`c_server.bat`, `c_root....
以上就是Tomcat SSL认证设置及证书自动生成的完整流程,包括了使用OpenSSL和keytool生成证书、在Tomcat中配置SSL以及在客户端浏览器导入证书的详细步骤。这个过程中,安全性和合规性是至关重要的,因为自签发的证书...
1. **生成自签名证书**:使用OpenSSL生成服务器端的私钥和自签名证书。 2. **导入证书到Keystore**:将生成的自签名证书导入到Tomcat的keystore中。 3. **配置Tomcat服务器**:编辑Tomcat的`server.xml`配置文件,...
至于“源码”和“工具”标签,它们可能指的是在配置过程中可能会涉及到的Tomcat源代码理解和使用的一些辅助工具,比如OpenSSL。虽然在本文中没有深入讨论这些,但了解Tomcat的工作原理以及掌握基本的命令行工具是IT...
描述中提到了博客,这个博客可能提供了详细的步骤,包括如何生成证书,如何将其导入到Tomcat的密钥库,以及如何在`server.xml`中配置HTTPS连接器。 此外,压缩包中的其他文件也扮演着关键角色: - `LICENSE`和`...
因为证书颁发机构会给两个整数,一个是签署后的服务器证书,还有一个中级CA证书,所以要多一行配置。 可能证书颁发机构只会给你服务器证书也就是server.cer, 中级的CA证书即 intermediate.cer 需要到 证书颁发机构...
标题中的“Tomcat配置HTTPS单项认证”涉及到的是在Apache Tomcat服务器上设置安全套接层(SSL)以实现HTTPS通信的过程,尤其是关于单向认证(也称为客户端认证)的配置。在互联网上,HTTPS是HTTP协议的安全版本,...
2. 生成证书请求:在你的服务器上,使用OpenSSL工具生成证书签名请求(CSR)。CSR包含了你的组织信息和服务器的公钥。 3. 提交CSR给CA:将CSR提交给你选择的证书颁发机构,他们会验证你的信息并签发证书。 4. 下载并...