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錯誤