ssl+apache?我的是RH7.2(3),APACHE,PHP和MYSQL
注意了:粘贴我总结的安装方法给大家分享
配置支持SSL的TOMCAT与APACHE
软件:
Java j2sdk-1_4_0_rc-win
Jakarta-tomcat-4.0-b1
Openssl for Linux
操作步骤:
1、 建立CA根证书(使用openssl)
1. 在openssl的apps目录下建立自己的CA目录,2. 例如:mageCA
mkdir mage
3. 生成CA密钥(用于签发证书)
openssl genrsa -out mageCA/ca-key.pem 1024
4. 生成待签名5. 的证书
openssl req -new -out mageCA/ca-req.csr -key mageCA/ca-key.pem
6. 用CA私钥自签名7.
openssl x509 -req -in mageCA/ca-req.csr -out mageCA/ca-cert.pem -signkey mageCA/ca-key.pem -days 365
2、 建立服3、 务器证书(使用java)注:%JDK_HOME%为j2sdk的安装目录
1. 在Java的工作目录,2. 也就是%JDK_HOME%的bin目录下建立自己的server目录,3. 例如:server
mkdir server
4. 生成server密钥对
%JDK_HOME%\bin\keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass changeit -storepass changeit -dname "cn=localhost, ou=department, o=company, l=Beijing, st=Beijing, c=CN" -keystore server\server_keystore
注:-alias后的tomcat_server是密钥对的名字可替换为自己想要的名字
-keypass与-strorepass后的changeit为保护密码必须6位,将其替换为你要的密码即可。
-dname为包含的server信息。其中cn是服务器的名字一定要与WEB服务器中设置的一样。
5. 生成待签名6. 证书
%JDK_HOME%\bin\keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file server\server.csr -keypass changeit -keystore server\server_keystore -storepass changeit参数意义同上
7. 用CA私钥签名8. (在linux上使用openssl)
1) 先将刚刚生成的server.csr文件ftp到linux上openssl的目录下的server子目录中。注意ftp的时候使用bin模式。
2) openssl x509 -req -in server/server.csr -out server/server-cert.pem -CA mageCA/ca-cert.pem -CAkey mageCA/ca-key.pem -days 365
4、 将CA根证书和服5、 务器证书导入Tomcat(使用Java)
1. 先导入CA根证书
1) 将CA根证书(ca-cert.pem)ftp到Java工作目录下的ca子目录中。注意ftp的时候使用bin模式。
2) %JDK_HOME%\bin\keytool -import -v -trustcacerts -storepass changeit -alias my_ca_root -file ca\ca-cert.pem -keystore %JDK_HOME%\jre\lib\security\cacerts注意此时的-storepass为默认的“changeit”。-alias为 CA根证书的别名3) 。
2. 再导入服3. 务器证书
1) 将服2) 务器证书(server-cert.pem)ftp到Java工作目录下的server子目录中。注意ftp的时候使用bin模式。
3) %JDK_HOME%\bin\keytool -import -v -trustcacerts -storepass changeit -alias tomcat_server -file server\server-cert.pem -keystore server\server_keystore注意此时的-storepass为刚才生成证书时输入的密码。-alias为服4) 务器证书的别名5)。
4. 查看证书
1) 查看CA证书
keytool -list -keystore %JDK_HOME%\jre\lib\security\cacerts
2) 查看服3) 务器证书
keytool -list -keystore server\server_keystore
5. 修改Tomcat的配置文件
用写字板修改conf目录下server.xml文件找到以下内容去掉其注释并修改。
<!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="false"
acceptCount="10" debug="0" scheme="https" secure="true">
<Factory className="org.apache.catalina.net.SSLServerSocketFactory"
clientAuth="true" protocol="TLS"
keystoreFile="c:/jakarta-tomcat-4.0-b1/conf/server_keystore" keystorePass="780608"
/>
</Connector>
然后把文件server\server_keystore复制到目录%TCAT_HOME%\conf\下
6、 建立Client证书
1. 在openssl的apps目录下建立自己的Client目录,2. 例如:client
3. 生成Client密钥对
openssl genrsa -out client\client-key.pem 1024
4. 生成待签名5. 的证书
openssl req -new -out client\client-req.csr -key client\client-key.pem
6. 用CA私钥签名7.
openssl x509 -req -in client\client-req.csr -out client\client-cert.pem -signkey client\client-key.pem -CA mageCA\ca-cert.pem -CAkey mageCA\ca-key.pem -CAcreateserial -days 365
8. 生成Client端可以导入的个人证书
openssl pkcs12 -export -clcerts -in client\client-cert.pem -inkey client\client-key.pem -out client\client.p12
7、 将CA证书与个人证书导入IE
1. 先导入CA根证书
1) 将已经ftp到Java工作目录下ca子目录中的ca-cert.pem改名2) 为ca-cert.cer
3) 在client端的IE中使用<工具>,< Internet选项>,<内容>,<证书>,<导入>,把我们生成的CA根证书导入,4) 使其成为用户信任的CA。
2. 再导入个人证书
1) 将个人证书(client.p12)ftp到Client端。注意ftp的时候使用bin模式。
2) 把client.p12导入到client端的IE中作为个人证书,3) 导入过程同4) 上
8、 启动并访问
1. 执行%TCAT_HOME%\bin\startup.bat启动Tomcat 4.x
2. 在IE浏览器的地址栏中输入https://localhost:8443,3. 如果前面的操作都正确的话,4.应该可以看到Tomcat的欢迎页面。同5. 时状态栏上的小锁处于闭合状态,6. 表示您已经成功地与服7.务器建立了要求客户端验证的SSL安全连接。
9、 其他
IE在进行服务器证书的认证的时候可能出现一个对话框说明有三项验证信息中的几项不副。1该安全证书不是由可信的验证机构发行2该安全证书的日期无效3安全证书上的名称和站点名称不匹配。
下面是APACHE的SSL设置。
密钥与证书的生成方式都一样然后是对http.conf的设置。
</IfModule>条件编译
<IfDefine HAVE_SSL>判断参数
##
## SSL Virtual Host Context
##
<VirtualHost _default_:443>开始设置
# General setup for the virtual host
#DocumentRoot "/etc/httpd/htdocs"
#ServerName new.host.name
#ServerAdmin you@your.address
DocumentRoot "/var/www/ssl/"默认根路径
ServerName www.ssl.test
ServerAdmin you@your.address
ErrorLog logs/error_log
TransferLog logs/access_log
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on启动SSL引擎
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
SSLCipherSuite支持的加密模式
ALL:!ADH:!EXPORT57:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A test
# certificate can be generated with `make certificate' under
# built time. Keep in mind that if you've both a RSA and a DSA
# certificate you can configure both in parallel (to also allow
# the use of DSA ciphers, etc.)
#SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateFile /home/wig/openssl/apps/apache/apache-cert.pem服务器证书文件
#SSLCertificateFile /etc/httpd/conf/ssl.crt/server-dsa.crt
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've bo