nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)...
前些天搭好了cas系統,這幾天一致再搞nginx和cas的反向代理,一直不成功,但是走http還是測試通過的,最終確定是ssl認證證書這一塊的問題,原本我在cas服務端里的tomcat已經配置了證書,并且能夠使用了,但是現在我用nginx代理使用ssl與cas-server建立連接,就會失敗(看了網上的大神(是不是真的大神先不管)說是nginx不支持與后臺的加密連接的原因)。那么既然我nginx代理了cas-server,那么現在我nginx服務器就擔任cas-server的角色,所以我需要把nginx作為ssl-server與cas-client作為ssl-client進行ssl連接,而nginx到cas-server則用http連接即可,下面開始配置。
為什么要寫這個配置,因為我在網上看了很多文檔,最后沒有一個是能夠正確生成的!發現有些人直接復制別人的東西,也不管對不對,真心坑,于是有了這篇文章...
1、下載編譯安裝openssl:
下載openssl(openssl-devel是openssl的開發包,可以用來建立修改依賴關系)
wget https://github.com/openssl/openssl/archive/OpenSSL-fips-2_0_11.tar.gz
解壓編譯然后進行安裝,(我們主要講證書生成,這里省略)
yum install openssl
2、生成根證書
2.1、先到要存放證書的路徑下
?cd /usr/local/nginx/conf/keys
2.2、生成證書密鑰文件(key)
openssl genrsa -des3 -out eguid.key 1024
Enter pass phrase for root.key: ?輸入密碼?
Verifying – Enter pass phrase for root.key: 重新輸入密碼
2.3、生成證書的申請文件(csr)
openssl req -new -key eguid.key -out eguid.csr
Enter pass phrase for root.key: 輸入創建的密碼?
Country Name (2 letter code) [AU]:國家名,可以用代號
State or Province Name (full name) [Some-State]:省名
Locality Name (eg, city) []:城市名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ?公司名?
Organizational Unit Name (eg, section) []: 愛填不填
Common Name (eg, YOUR name) []: ?不要輸入?
Email Address []:admin@mycompany.com 電子郵箱
A challenge password []: 最好不填
An optional company name []: 最好不填
2.4、生成根證書(crt)
openssl x509 -req -days 365 -sha1 -extensions v3_ca -signkey eguid.key -in eguid.csr -out eguid.crt?
Enter pass phrase for eguid.key:輸入之前你填的密碼
解釋一下:這里是用前面兩個文件(key、csr)生成365天有效期的crt證書。
到這里呢,根證書就完成了,我這里完全沒有任何問題,如果有問題可以找我。
----------------------------------------------------------------------------------------------------------------------------------------------
接下來創建server證書(服務器證書)
3、生成server服務器證書
3.1、生成server服務器密鑰key
這里與根證書生成key是一樣的,名字變一下就可以了 openssl genrsa –des3 -out server.key 10243.2、生成server 服務器申請文件csr
openssl req -new -key server.key -out server.csrCountry Name (2 letter code) [AU]: 國家名
State or Province Name (full name) [Some-State]: 省名
Locality Name (eg, city) []:市名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. 公司名?
Organizational Unit Name (eg, section) []: 可以不輸入?
Common Name (eg, YOUR name) []:www.eguid.cn 服務器主機名,如果填寫不正確,瀏覽器提示無效證書,但不影響使用?
Email Address []:642209085@qq.com 電子郵箱,隨便填
A challenge password []: 最好不輸入?
An optional company name []: 最好不輸入
3.3、根據前面的根證書以及剛生成的兩個文件生成server服務器證書
openssl x509 -req -days 365 -sha1 -extensions v3_req -CA eguid.crt -CAkey eguid.key -CAserial root.srl -CAcreateserial -in server.csr -out server.crt有密碼就輸入密碼,下面進行客戶端證書生成
4、生成client客戶端證書
4.1、生成client客戶端key
openssl genrsa -des3 -out client.key 10244.2、生成client客戶端證書申請文件csr
openssl req -new -key client.key -out client.csr Country Name (2 letter code) [AU]: 國家名
State or Province Name (full name) [Some-State]: 省名
Locality Name (eg, city) []:市名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. 隨便填
Organizational Unit Name (eg, section) []: 可以不輸入?
Common Name (eg, YOUR name) []:隨便輸
Email Address []:642209085@qq.com 隨便填
A challenge password []: 最好不輸入?
An optional company name []: 最好不輸入
4.3、根據根證書以及剛生成的兩個文件生成client客戶端證書 crt
openssl x509 -req -days 365 -sha1 -extensions v3_req -CA eguid.crt -CAkey eguid.key -CAserial root.srl -CAcreateserial -in client.csr -out client.crt有密碼輸密碼
4.4、生成client客戶端證書安裝包pfx
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx輸入密碼,輸入密碼,輸入密碼
到這里客戶端證書就生成完了。
簡單解釋一下幾種證書文件的作用及用途:
server.crt和server.key是配置單向SSL時需要使用的證書文件;
client.crt是配置雙向SSL時需要使用的證書文件;
client.pfx是配置雙向SSL時需要客戶端安裝的證書文件。
catserver.key server.crt > server.pem
轉載于:https://www.cnblogs.com/eguid/p/10195647.html
總結
以上是生活随笔為你收集整理的nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有趣的话
- 下一篇: 左右无缝轮播图的实现