Tomcat7 安装StartSSL证书笔记
1.Tomcat-Native安装
使用StartSSL,Tomcat必须用apr方式启动(apr方式对于静态的内容,比默认的bio效率要高很多倍)
- Windows下tomcat-native安装
直接复制tcnative-1.dll到bin目录下即可(需要重启Ecplise)才能体现
注意:不同的Tomcat,对应的tomcat-native版本也不同,向下兼容,可以去下载最新版的
比如: http://apache.fayea.com/tomcat/tomcat-connectors/native/1.1.32/binaries/tomcat-native-1.1.32-win32-bin.zip
PS:tomcat-native 一般都会带一个已经编译好的绿色openssl.exe,很好用,下面会用到
PS: eclipse可能不会自动带上这个参数,还是以bio模式运行,那就 在Run > Run Configuration > Tomcat xxx > Arguments的VM arguments里写上参数
-Djava.library.path="dll的放置路径"
- Linux下tomcat-native安装
一般不用下载,在tomcat/bin目录下就有tomcat-native.tar.gz文件
先下载依赖包,注意需要装对应版本的openjdk-devel,其实就是openjdk的jdk,默认安装openjdk,其实是jre
$ yum install gcc gcc-java apr apr-devel openssl openssl-devel libgcc.x86_64
或者
$ apt-get install libapr1.0-dev libssl-dev...
然后,一般这样就可以了(注意apr的路径,如果默认路径,一般可以不配置,用tomcat的执行账户编译运行)
一般在 $tomcat/bin/tomcat-native-1.1.32-src/jni/native 下编译
$ ./configure --with-apr=/usr/bin/apr-1-config \
$ --with-java-home=/usr/lib/jvm/java-1.7.0-openjdk.x86_64/ \
$ --with-ssl=yes \
$ --prefix=/home/www/tomcat
$ make
$ make install
设置环境变量(可以设定到/etc/profile 或者.bash_profile里)
export LD_LIBRARY_PATH=/home/www/tomcat/lib
export LD_RUN_PATH=/home/www/tomcat/lib
安装完之后,启动tomcat
一月 13, 2015 3:43:58 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["http-apr-8888"] 一月 13, 2015 3:43:58 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["http-apr-443"] 一月 13, 2015 3:43:58 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["ajp-apr-8009"]
http-apr-8888........说明tomcat已经在使用apr模式(默认是 http-bio-8888)
2.申请StartSSL免费证书
申请StartSSL证书,请参考 http://www.cnblogs.com/kreo/p/4221379.html
申请完后你会有一下三个文件,ssl.crt(公钥),ssl.key(密钥),ssl.p12(PKCS12格式的证书)
- 查看证书的内容
$ keytool -list -rfc -keystore ssl.p12 -storetype pkcs12
如下,记下别名(alias),本文是 startcom pfx certificate (一般都是这个)
- 生成keystore
$ keytool -importkeystore -srckeystore ssl.p12 -srcstoretype PKCS12 -destkeystore keystore -srcalias "startcom pfx certificate" -destkeypass 123456
srcalias 是上面查到的别名
destkeypass 是默认加密密码,可能会忽略,重新输入一次即可
执行完之后,会在目录下生成名为keystore的文件
- 合并证书
这步主要是为了FireFox,因为FireFox会要求提供根证书
下载StartSSL CA证书
http://cert.startssl.com/certs/ca.pem
下载StartSSL Class1 Sub CA
http://cert.startssl.com/certs/sub.class1.server.ca.pem
然后把ca.pem和sub.class1.server.ca.pem,加在ssl.crt后面
记事本加一下就可以,这里要注意,每个证书都要有
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
这2个开始结束标记,第一个结束和第二个开始标记不能在一行,不然会报错
- 使用OpenSSL加解密功能,改变加密方式,使Tomcat不用启动就输入私匙密码
$ copy ssl.key ssl.key.tmp $ openssl rsa -in ssl.key.tmp -out ssl.key
3.Tomcat配置证书
<Connector SSLEnabled="true" URIEncoding="UTF-8" clientAuth="false" SSLCACertificateFile="D:/WorkSpace/ssl/ssl.crt" SSLCertificateFile="D:/WorkSpace/ssl/ssl.crt" SSLCertificateKeyFile="D:/WorkSpace/ssl/ssl.key" keystoreFile="D:/WorkSpace/ssl/keystore" keystorePass="changeit" keystoreType="PKCS12" maxThreads="150" port="443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/>
4.把证书导入jre
$ keytool -import -alias cacerts -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -file D:\ssl.crt -trustcacerts
最好所有jre都导一遍,以免出现PKIX path building failed错误
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 上周热点回顾(1.20-1.26)