eclipse下的tomcat配置https(最簡單得配置https)


近期公司列出一大堆的東西,其中包括https,啥也不想說,你們是無法理解的苦逼的我的

本文不是雙向認證, 雙向認證需要讓客戶端信任自己生成的證書,有點類似登錄銀行網站的情,如果想知道雙向認證的同志可以點擊這里

關於https這些通道可以去百度Google其原理,不廢話,自動生成秘鑰,需要使用jdk自帶的命令keytool。關於keytool的使用請查看:這里或者這里,我這里簡單的貼一下使用方式

(1)java工具keytool

常用命令:

(注:生成證書時,CN要和服務器的域名相同,如果在本地測試,則使用localhost)

keytool -genkey -alias "tomcat" -keyalg "RSA" -keystore "d:\mykeystore"  -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass "changeit" -storepass -validity 180

參數說明:

-genkey表示要創建一個新的密鑰

-dname表示密鑰的Distinguished Names,

CN=commonName

OU=organizationUnit

O=organizationName

L=localityName

S=stateName

C=country

Distinguished Names表明了密鑰的發行者身份

-keyalg使用加密的算法,這里是RSA

-alias密鑰的別名

-keypass私有密鑰的密碼,這里設置為changeit

-keystore 密鑰保存在D:盤目錄下的mykeystore文件中

-storepass 存取密碼,這里設置為changeit,這個密碼提供系統從mykeystore文件中將信息取出

-validity該密鑰的有效期為 180天 (默認為90天)

刪除

keytool -delete -alias catest -keystore d:\mykeystore

查看

keytool -list -keystore d:\mykeystore

創建證書

1.服務器中生成證書(注:生成證書時,CN要和服務器的域名相同,如果在本地測試,則使用localhost)

keytool -genkey -alias "tomcat" -keyalg "RSA" -keystore "d:\mykeystore " -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"-keypass "changeit" -storepass "changeit"

2.導出證書,由客戶端安裝:

keytool -export -alias tomcat -keystore d:\mykeystore -file d:\mycerts.cer -storepass "changeit"

3.客戶端配置:為客戶端的JVM導入密鑰(將服務器下發的證書導入到JVM中)

keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts " -file d:\mycerts.cer(這里是證書生成的路徑,不是秘鑰,而且后續配置的是秘鑰而不是這個證書,不要搞混了) -storepass "changeit"

之后可以看到生成了 catest.cer 文件,之后導入用,keytool的操作就完成了.

配置tomcat

如果是在eclipse上面,那么找到eclipse的service(如果不是,找到tomcat下面的server.xml文件),找到server.xml並打開:
配置如下:

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false"
 keystoreFile="d:\catest.key(這里是第一步生成的秘鑰位置)" keystorePass="zuecun(這里是秘鑰的密碼)" maxThreads="25" port="8443" 
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"/>

 

如果還有其他的8443端口直接注釋掉

接着找到web.xml(與server.xml在同一個目錄下)並打開:

在<welcome-file-list>后面配置:

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>securedapp</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee><!-- 如果你希望關閉 SSL ,只需要將 CONFIDENTIAL 改為 NONE 即可。 -->
        </user-data-constraint>
    </security-constraint>

然后啟動服務器,直接訪問會自動跳轉到你配置好的https端口為8443,注意的是,你這里的證書自己創建出來的沒有申請,所以會出現不安全的連接,當然這是本地測試嘛,

最后一句就是歡迎各路大神丟磚或提意見,謝謝~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM