用ssl加密apache服務器來建立連接加密網站
1.http這個通信協議是明碼傳送數據,而https時加密傳輸的,加密的方法時通過ssl,這個ssl是以openssl軟件來提供一個加密的函數庫
2.要讓apache支持https協議的話,必須要有mod_ssl這個軟件,以建立連接加密網站
3.環境說明:
A:正規的網站應該向第三方CA頒發機構注冊,用戶瀏覽是向CA機構詢問此網站證書的有效性
B:centos6.4上自建CA,來向客戶端頒發證書,這個自建的CA僅供測試使用
C:apache服務器作為客戶向剛才自建的CA機構注冊證書
//首先確保你的apache服務器已經成功運行,再進行下面步驟
//創建CA來向客戶端頒發證書
#創建證書的文件夾可以隨便選擇,以后在/etc/httpd/conf.d/ssl.conf文件中指定這個證書位置即可 1.首先建立一個CA的根私鑰文件,使用RSA格式,1024位 shell> mkdir /etc/httpd/ssl_ca shell> cd /etc/httpd/ssl_ca shell> openssl genrsa -des3 -out ca.key 1024 2.利用建立的RSA私鑰,為CA自己建立一個自簽名的證書文件 shell> openssl req -new -x509 -days 7300 -key ca.key -out ca.crt 3.CA已經建立完畢,生成的ca.key 和ca.crt向客戶端頒發證書
//apache服務器向CA申請證書
1.客戶端生成客戶證書的私鑰文件 shell> openssl genrsa -des3 -out apache_client.key 1024 2.openssl 生成客戶端證書的時候,不能直接生成證書,而是必須通過證書請求文件來生成,現在必須先建立客戶端的證書請求文件 shell> openssl req -new -key client.key -out client.csr 3.有了證書請求文件(client.csr),就可以使用CA的根證書和根私鑰(ca.crt,ca.key)來對請求文件進行簽名,生成客戶端證書client.pem shell> openssl x509 -req -in client.csr -out client.pem -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
//添加apache對openssl模塊的支持
1.下載mod_ssl shell> yum install mod_ssl.x86_64 2.驗證apache主配置文件有下面這條 shell> vim /etc/httpd/conf/httpd.conf Include conf.d/*.conf #可以加載ssl的配置文件 3.編譯ssl.conf ------------------- LoadModule ssl_module modules/mod_ssl.so Listen 443 #驗證上面這兩條的存在 SSLCertificateFile /etc/httpd/ssl_ca/client.pem #路徑改為剛才生成客戶端證書文件的路徑 SSLCertificateKeyFile /etc/httpd/ssl_ca/client.key ------------------- 4.重啟apache服務 //在ubuntu客戶機登錄測試
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!