https學習,resin下配置https
一、使用加密演算法作用:
非對稱加密演算法:RSA,DSA/DSS
對稱加密演算法:AES,RC4,3DES
HASH演算法:MD5,SHA1,SHA256
1、其中非對稱加密演算法用於在握手過程中加密生成的密碼
2、對稱加密演算法用於對真正傳輸的資料進行加密
3、而HASH演算法用於驗證資料的完整性
4、伺服器和使用者雙方必須都有證照。由此可見,SSL協議是通過非對稱金鑰機制保證雙方身份認證,並完成建立連線,在實際資料通訊時通過對稱金鑰機制保障資料安全性
5、數字證照在使用者公鑰後附加了使用者資訊及CA的簽名。公鑰是金鑰對的一部分,另一部分是私鑰。公鑰公之於眾,誰都可以使用。私鑰只有自己知道。由公鑰加密的資訊只能由與之相對應的私鑰解密。為確保只有某個人才能閱讀自己的信件,傳送者要用收件人的公鑰加密信件;收件人便可用自己的私鑰解密信件。同樣,為證實發件人的身份,傳送者要用自己的私鑰對信件進行簽名;收件人可使用傳送者的公鑰對簽名進行驗證,以確認傳送者的身份。
6.單向認證,就是傳輸的資料加密過了,但是不會校驗客戶端的來源
7.雙向認證,如果客戶端瀏覽器沒有匯入客戶端證照,是訪問不了web系統的,找不到地址,想要用系統的人沒有證照就訪問不了系統HTTPS概念
二、通訊過程
SSL協議通訊過程
(1) 瀏覽器傳送一個連線請求給伺服器;伺服器將自己的證照(包含伺服器公鑰S_PuKey)、對稱加密演算法種類及其他相關資訊返回客戶端;
(2) 客戶端瀏覽器檢查伺服器傳送到CA證照是否由自己信賴的CA中心簽發。若是,執行4步;否則,給客戶一個警告資訊:詢問是否繼續訪問。
(3) 客戶端瀏覽器比較證照裡的資訊,如證照有效期、伺服器域名和公鑰S_PK,與伺服器傳回的資訊是否一致,如果一致,則瀏覽器完成對伺服器的身份認證。
(4) 伺服器要求客戶端傳送客戶端證照(包含客戶端公鑰C_PuKey)、支援的對稱加密方案及其他相關資訊。收到後,伺服器進行相同的身份認證,若沒有通過驗證,則拒絕連線;
(5) 伺服器根據客戶端瀏覽器傳送到密碼種類,選擇一種加密程度最高的方案,用客戶端公鑰C_PuKey加密後通知到瀏覽器;
(6) 客戶端通過私鑰C_PrKey解密後,得知伺服器選擇的加密方案,並選擇一個通話金鑰key,接著用伺服器公鑰S_PuKey加密後傳送給伺服器;
(7) 伺服器接收到的瀏覽器傳送到訊息,用私鑰S_PrKey解密,獲得通話金鑰key。
(8) 接下來的資料傳輸都使用該對稱金鑰key進行加密。
三、生成證照(自定義證照)
Key 通常指私鑰。
CSR 是CertificateSigningRequest的縮寫,即證照籤名請求,這不是證照,可以簡單理解成公鑰,生成證照時要把這個提交給權威的證照頒發機構。
CRT 即 certificate的縮寫,即證照。
X.509 是一種證照格式.對X.509證照來說,認證者總是CA或由CA指定的人,一份X.509證照是一些標準欄位的集合,這些欄位包含有關使用者或裝置及其相應公鑰的資訊。
.cer格式檔案俗稱證照,但這個證照中沒有私鑰,只包含了公鑰;
.pfx格式檔案不僅包含了公鑰,還包含了私鑰,當然這個私鑰是加密的,不輸入密碼是解不了密的;
.jks格式檔案表示java金鑰儲存器(javakey store),它可以同時容納N個公鑰跟私鑰,是一個金鑰庫;
.keystore格式檔案其實跟.jks基本是一樣的;
四、resin下配置https,官網文件已經寫得非常詳細:http://www.caucho.com/resin-4.0/admin/security-ssl.xtp
1、resin支援OpenSSL,JSSE兩種SSL的實現方式,但官網推薦使用OpenSSl
2、下載安裝OpenSSL,在resin根目錄下簡歷keys目錄$RESIN_HOME/keys
3、在keys目錄下建立一個openssl.cnf檔案,主要是生成證照時指向該檔案使用,$RESIN_HOME/keys/openssl.cnf,內容如下:
[ req ] default_bits = 1024 distinguished_name = req_distinguished_name [ req_distinguished_name ] C = 2 letter Country Code, for example US C_default = ST = State or Province ST_default = L = City L_default = O = Organization Name O_default = OU = Organizational Unit Name, for example 'Marketing' OU_default = CN = your domain name, for example www.hogwarts.com CN_default = emailAddress = an email address emailAddress_default =
4、生成私鑰key,命令列進入具體OpenSSL安裝目錄執行openssl.exe
"C:\Program Files\GnuWin32\bin\openssl.exe" \ genrsa -des3 -out gryffindor.key 1024
5、生成一個自定義證照,自己生成的證照時不被瀏覽器認可的,所以有提示,除了提示外其他加密過程都一樣
"C:\Program Files\GnuWin32\bin\openssl.exe" req -new \ -config ./openssl.cnf -key gryffindor.key -out gryffindor.csr
6、配置resin服務https監聽,resin.xml
<resin xmlns="http://caucho.com/ns/resin"> <cluster id="http-tier"> <server id="a" address="192.168.1.12"> <http port="443"> <openssl> <certificate-file>keys/gryffindor.crt</certificate-file> <certificate-key-file>keys/gryffindor.key</certificate-key-file> <password>my-password</password> <!-- disables SSLv3 --> <protocol>-sslv3</protocol> </openssl> </http> </server> ... </resin> 7、resin.property配置檔案開啟註釋
# OpenSSL certificate configuration openssl_file : key/gryffindor.crt openssl_key : keys/gryffindor.key openssl_password : my-password8、啟動應用即可
注意:resin 需要使用pro版本,具體的SSL簡要說明,配置方法在上面的resin官方文件都有說明,很多文章也是參照官網文件的翻譯,學習嘛,還是看原汁原味的官網文件
更好。
相關文章
- 學習HTTP——HTTPSHTTP
- RHEL4下配置HTTPSHTTP
- centos nginx下配置免費httpsCentOSNginxHTTP
- tomcat下配置https環境TomcatHTTP
- gogs配置httpsGoHTTP
- express 配置httpsExpressHTTP
- Nginx配置HTTPSNginxHTTP
- Mac下配置Apache Httpd的Https/SSLMacApachehttpd
- HTTPS訪問:weblogic下配置SSLHTTPWeb
- 二、Nginx 配置 httpsNginxHTTP
- weblogic配置httpsWebHTTP
- Tomcat配置HTTPSTomcatHTTP
- 為solr配置HttpsSolrHTTP
- 配置https協議HTTP協議
- windows下用nginx配置https伺服器WindowsNginxHTTP伺服器
- 全站HTTPS升級系列(三)nginx配置全站HTTPSHTTPNginx
- HTTPS 效能優化學習筆記HTTP優化筆記
- Tomcat (1) —— Mac下配置Tomcat Https/SSLTomcatMacHTTP
- 配置HTTPS伺服器HTTP伺服器
- Nginx 配置https證書NginxHTTP
- springboot 配置 httpsSpring BootHTTP
- Nginx配置Https專案NginxHTTP
- 如何配置https站點HTTP
- Charles配置https抓包HTTP
- 看圖學HTTPSHTTP
- mac環境下配置nginx反向代理,https協議MacNginxHTTP協議
- Centos6.3下Apache配置https證書訪問CentOSApacheHTTP
- Nginx使用SSL模組配置httpsNginxHTTP
- HTTPS的SSL證書配置HTTP
- nginx docker容器配置https(ssl)NginxDockerHTTP
- nginx+php-fpm配置HTTPSNginxPHPHTTP
- Nginx如何配置HTTPS詳解NginxHTTP
- 《HTTPS權威指南》-協議學習筆記HTTP協議筆記
- nginx配置ssl加密(單/雙向認證、部分https) – HTTPS SSL 教程Nginx加密HTTP
- phpstudy apache 配置 https 證照PHPApacheHTTP
- Homestead 站點如何配置 httpsHTTP
- nginx 專案配置 https 訪問NginxHTTP
- Nginx配置網站預設httpsNginx網站HTTP