jdk生成https證書


最近由於客戶現場做“等保”,其中有一條要求我們必須使用https進行web端的請求,之前我們一直沿用的是默認的http請求,用戶說不安全,唉~~局域網,一直強調安全,安全,話不多說了

我采用的使用JAVA自帶的keytool生成證書,但是該方法生成的證書不是有效證書,不被瀏覽器信任,如果是被信任的站點,瀏覽器左側會有個綠色的圖標,但是這種方法簡單,本地就可以輕松測試。

要想使用https,首先,我們需要有SSL證書,證書可以通過兩個渠道獲得:

公開可信認證機構
例如CA,但是申請一般是收費的,一般幾百到幾千一年.
自己生成
雖然安全性不是那么高,但勝在成本低.
目前證書有以下常用文件格式:JKS(.keystore),微軟(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式.這里用JKS做示例
生成JKS證書
打開命令行輸入keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore D:\apache-tomcat-7.0.26\keys\test.keystore
alias: 別名 這里起名keys
keyalg: 證書算法,RSA
validity:證書有效時間,10年
keystore:證書生成的目標路徑和文件名,替換成你自己的路徑即可,我定義的是D:\apache-tomcat-7.0.26\keys\test.keystore,其中keys文件夾必須存在

回車,然后會讓你輸入一些信息,其中秘鑰庫口令和秘要口令最好輸入同一個,並且記下這個口令,(配置tomcat會用到該口令)其他的可隨意填
Tomcat配置Https
打開tomcat下的conf目錄下的server.xml文件,搜尋https即可定位到相應的組件,完整的配置如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="你的keystore路徑" keystorePass="生成證書時的口令"  />


網址輸入https://127.0.0.1:8443可正常訪問,但是會發現http://127.0.0.1:8080也可以正常訪問但是並沒有跳轉到https協議,這里我們做如下配置
在web.xml末尾加上如下配置:

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

 


 


免責聲明!

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



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