本文出現的意圖html
因爲公司最近由於IOS版本的升級,開始全面推廣https,全部的IOS客戶端都要使用ssl證書。公司買了阿里的證書一年要五千多, 感受仍是挺貴的。後來去了解原來還有免費證書這個東西,就想着去搗鼓一下,網上教程不少,標準不一,大體都差很少。因爲 每一個機器的環境都不同,致使遇到的狀況也是不太同樣。對於很多人來講,問題仍是挺多的。若是大夥不想本身去配置,能夠 下載寶塔的面板來管理網站,它就有一鍵部署Let's Encrypt 的功能,我在騰訊雲下使用寶塔沒有出現問題,你們也能夠用他來建站。
寶塔官網:點擊跳轉java
配置 Let's Encrypt 免費證書的準備python
一、 首先把你的域名解析到這臺服務器,這裏是多域名配置,那至少解析兩個子域名過來啦,我這裏解析的是 ssl.huiyanxian.cn , tssl.huiyanxian.cn 切記是A解析啊 二、 首先你要配置好你的java環境,包括jdk,tomcat的安裝。個人端口改成了80,具體配置以下(能夠不按照個人來配置) <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="生成證書的路徑" keystorePass="證書的密碼" clientAuth="false" sslProtocol="TLS" /> 三、 由於在安裝過程當中須要安裝很多依賴,由於默認源在國外,致使依賴失敗,因此須要先把源改成國內源,你們能夠用網易163的源, 或者阿里的,我這裏用的是阿里的源,具體更換方法參考我前面的另外一片文章 https://blog.huiyanxian.cn/articles/2017/06/15/1497490831833.html 四、 這裏是使用的是certbot-auto 來申請證書,python要升級到2.7,centos 6.5 默認的python版本是 2.6.6,升級python參考文章 (https://blog.fazero.me/2016/10/13/centos-update-python/),這裏提供了一鍵腳本,以及把pip升級到了最新。
開始安裝centos
一、 安裝 certbot wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto 二、 申請ssl ,由於要驗證你的域名是否解析到了你的服務器,會借用你的80/443端口。因此在執行下面語句以前保證80/443 是沒有被佔用的。我這裏只須要關閉tomcat就行。 ./certbot-auto certonly --standalone --email xxxxxx@qq.com -d ssl.huiyanxian.cn -d tssl.huiyanxian.cn 這裏是多域名的,想要在添加域名的話繼續在後面添加 -d 域名 email後面填寫的是你的郵箱 彈出的 兩個選項 一個選擇贊成 A 另一個選擇 Y 就行。 等待到最後出現如下內容說明申請成功 IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/ssl.huiyanxian.cn/fullchain.pem. Your cert will expire on 2017-09-14. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le 說明申請成功,而且存放在了 這個文件下 /etc/letsencrypt/live/ssl.huiyanxian.cn/fullchain.pem 三、 合成tomcat的證書,在 tomcat 底下建立一個文件夾用來存放準備生產的證書(固然也能夠本身選擇一個目錄存放) 個人目錄是:/usr/local/tomcat/conf/LetsEncrypt , #進入申請證書的目錄,這個目錄會以第一個域名明明,不影響多域名使用。 cd /etc/letsencrypt/live/ssl.huiyanxian.cn/ #複製到tomcat剛建立的證書目錄下 cp fullchain.pem /usr/local/tomcat/conf/LetsEncrypt cp privkey.pem /usr/local/tomcat/conf/LetsEncrypt #進入到這個目錄 cd /usr/local/tomcat/conf/LetsEncrypt/ #生成.p12文件 openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat 這裏會被要求設置密碼,輸入就行(下面用到的:yourPKCS12pass) #生成.jks證書 keytool -importkeystore -deststorepass 'yourJKSpass' -destkeypass 'yourKeyPass' -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12 srcstoretype PKCS12 -srcstorepass 'yourPKCS12pass' -alias tomcat 其中 yourPKCS12pass 是上一步中設置的ssl證書密碼,這裏的yourKeyPass是要設置的keystore密碼,能夠與yourPKCS12pass一致,下面配置tomcat會用到 四、 配置tomcat <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="/usr/local/tomcat/conf/LetsEncrypt/MyDSKeyStore.jks" keystorePass="證書的密碼" clientAuth="false" sslProtocol="TLS" /> 五、 完成,在tomcat建立兩個站點,放入一個簡單的.jsp文件,能夠經過https://ssl.huiyanxian.cn https://tssl.huiyanxian.cn 便可訪問。 免費證書只能用三個月,可是能夠經過腳本自動更新,後續我會補充相關的自動更新的方法。
參考文獻tomcat
一、certbot官方服務器
二、更新pythonjsp
三、配置生成證書ide