两种方法
一 jsse ssl
使用:tomcat 7.0.39
1.生成 java 认证文件
keytool -genkey -alias nsp -keyalg RSA -validity 3650 -keystore /root/nsp.keystore
2.导入过程分 2 步,第一步是导出证书,第二步是导入到证书信任库,命令如下:
keytool
-export
-alias nsp -keystore
/opt/apache-tomcat-6.0.26/keystore/nsp.pl2
-storetype PKCS12 -storepass cdcgs123 -rfc -file /opt/apache-tomcat-6.0.26/keystore/nsp.cer
也可以不执行这一步,证书也不需要生成,tomcat 启动之后自动载入,只是启动要
比先生成要慢点,8443 口登陆网站可知,之争对 java 证书,其他未测试
3.在 tomcat 的 server.xml 加入 keystoreFile="/root/nsp.keystore" keystorePass="123456" 删除
注释符号 注意 P,F 是大写
强制使用 ssl
向 web.xml 的
CLIENT-CERT
Client Cert Users-only Area
SSL
/*
CONFIDENTIAL
启动成功
INFO: The APR based Apache Tomcat Native library which allows optimal performance in
production
found
java.library.path:
/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
environments
the
was
not
on
默认是先通过 apr(open ssl)验证,没有就直接跳过,通过 jsse 验证
Aug 15, 2016 2:06:11 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 15, 2016 2:06:11 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8443"]
Aug 15, 2016 2:06:11 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 15, 2016 2:06:12 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 652 ms
二 openssl
ssl
首先 安装 openssl :yum install openssl
第一步:生成证书
1)创建保存证书的目录:mkdir -p /usr/local/ssl
2) 生成证书:
首先,进入你想创建证书和私钥的目录,例如:
# cd /usr/local/ssl
创建服务器私钥,命令会让你输入一个口令:
# openssl genrsa -des3 -out server.key 1024
创建签名请求的证书(CSR):
# openssl req -new -key server.key -out server.csr
在加载 SSL 支持的 Nginx 并使用上述私钥时除去必须的口令:
# cp server.key server.key.org
最后标记证书使用上述私钥和 CSR:
# openssl rsa -in server.key.org -out server.key
# openssl rsa -in server.key -out server.pem
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
第二步:系统级别的 apr 安装和设置,因为在 linux 系统上 tomcat 的 apr 在编译
时是依赖它的
Linux 下 Apache 和 Apr 整合,提高 Apache 性能
1. 安装 APR
官方只有新版本了
1)下载源码包 apr-1.5.2.tar.gz
2)安装步骤 默认的目录在 /usr/local/apr
./configure
make
make install
2. 安装 APR-UTIL apr-util-1.5.4.tar.gz
2)安装步骤
./configure --with-apr=/usr/local/apr
make
make install
第三步 安装 Tomcat-Native 连接 APR,提高静态资源的访问性能
1) 找到 tomcat 的 bin 目录下的 tomcat-native.tar.gz
注意最好用 tomcat 自带的,因为下载的可能和 tomcat 版本不匹配,本人一开始就是下载的,结果 make 的时候一直
报 STACK 变量找不到。 (当然如果
omcat-native-1.1.33-src。
tomcat 下真的没有,也可以自己下载,本人 tomcat 8,使用
-zxvf
tomcat-native.tar.gz
tar
cd /tomcat-native-1.1.33-src/jni/native
./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/jdk1.7.0_76
make
make install
添加环境变量
/etc/prefile
vi
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
修改 server.xml 选项
启动成功,都是 apr 选项
INFO: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.5.2.
Aug 16, 2016 4:29:38 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Aug 16, 2016 4:29:38 PM org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized (OpenSSL 1.0.1e-fips 11 Feb 2013)
Aug 16, 2016 4:18:36 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Aug 16, 2016 4:18:36 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8443"]
Aug 16, 2016 4:18:36 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Aug 16, 2016 4:18:36 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 41166 ms
也可以指定协议切换
protocol="org.apache.coyote.http11.Http11Protocol"
走 jsse
Aug 16, 2016 4:38:03 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Aug 16, 2016 4:38:03 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8443"]
只有加密走的 bio,其他还是走的 apr(默认是这样,如果
没有按装就直接略过)
Aug 16, 2016 4:38:03 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Aug 16, 2016 4:38:03 PM org.apache.catalina.startup.Catalina start
protocol="org.apache.coyote.http11.Http11AprProtocol" 走 apr openssl
本人亲自测试,方法确实可行,如有疑问敬请百度