美文网首页
jdk keytool把网站打造成https,cer证书转pem

jdk keytool把网站打造成https,cer证书转pem

作者: IT和金融 | 来源:发表于2017-07-20 13:41 被阅读0次

    背景


    1、生成服务器证书:

    CMD进入JDK安装目录:cd c:/"Program Files"/Java/jdk1.6.0_43/bin。输入命令:

    keytool -genkey -v -alias tomcat -keyalg RSA -keystore F:/ssl/tomcat.keystore -validity 365

    (其中365代表有效期天)

    注:以上的keystore密码建议设置成一致,避免混乱。这里设置测试密码为123456。输入密码后,提示输入名字与姓氏,这里输入浏览器访问域名。其他项直接回车跳过即可。

    2、生成客户端证书:

    keytool -genkey -v -alias clientkey -keyalg RSA -storetype PKCS12 -keystore F:/ssl/clientkey.p12

    3、这里服务端跟客户端生成完证书,双向需要认证。首先,让服务器信任客户端证书:

    由于不能直接将PKCS12格式的证书库导入,所以必须先把客户端证书导出为一个单独的CER文件。

    keytool -export -alias clientkey -keystore F:/ssl/clientkey.p12 -storetype PKCS12 -storepass 123456 -rfc -file F:/ssl/clientkey.cer

    注:alias的别名clientkey必须与客户端证书别名一致。storepass为上述设置的密码。

    4、将客户端证书导入服务器证书库。(服务器信任客户端证书)

    keytool -import -v -file f:/ssl/clientkey.cer -keystore f:/ssl/tomcat.keystore

    5、客户端信任服务器证书:

    keytool -keystore f:/ssl/tomcat.keystore -export -alias tomcat -file f:/ssl/tomcat.cer

    导入后,本地安装证书。双击tomcat.cer根据提示安装。

    6、配置tomcat种server.xml种8443端口。观察tomcat中端口配置:

    这里有配置redirectPort="8443" 。猜测这里如果添加了SSL/TLS证书后,利用http协议8080端口访问将自动重定向到8443端口。所以这里修改8443为TLS认证协议:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"

    maxThreads="150" scheme="https" secure="true"

    clientAuth="false" sslProtocol="TLS"

    keystoreFile="d:/122-ssl/tomcat.keystore" keystorePass="123456"

    ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_

    CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_C

    BC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RS

    A_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"

    />

    参数说明:keystoreFile证书路径。keystorePass设置证书密码。ciphers设置这个参数,避免chrome浏览器由于安全机制过滤,提示“

    有时候tomcat会报错,此时需要修改protocol为上述便可以解决

    7、配置工程web.xml,添加ssl认证,将http请求全部需要ssl认证:

    <login-config>

    <!--Authorization setting for SSL -->

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

    </web-resource-collection>

    <user-data-constraint>

    <transport-guarantee>CONFIDENTIAL</transport-guarantee>

    </user-data-constraint>

    </security-constraint>

    8、本地使用http://localhost:8443/测试访问。

    9、如果使用分布式工程。需要将另一个tomcat访问端口重定向redirectPort="8443"进行修改。比如修改为8444,此时ssl配置Connector 也应改为8444。否则将提示端口被占用。

    10. 有的网站需要将cer证书转换成pem证书才能用,此时

    安装好openssl之后,进入openssl目录:

    输入openssl命令,即进入命令模式:

    先将要转换的cer证书也放到openssl目录下面,然后执行以下命令:

    x509 -inform der -in tomcat.cer -out tomcat.pem

    相关文章

      网友评论

          本文标题:jdk keytool把网站打造成https,cer证书转pem

          本文链接:https://www.haomeiwen.com/subject/flidkxtx.html