發表日期:2018-06 文章編輯:小燈 瀏覽次數:2459
前幾天看見群里有同學說安裝了ssl證書了后,網站直接403了,也就是資源請求錯誤。我判斷可能原因就是url跳轉的規則估計有問題,因為第一次我也踩過這個坑,然后我在自己的Ubuntu云服務器里面搭建測試一樣。
那么網站為什么要使用ssl?
目前絕大多數網站都還使用的是HTTP協議。而HTTP 協議無法加密數據,極有可能會被不法分子利用。存在導致數據泄露、數據篡改、流量劫持、釣魚攻擊等安全問題隱患。如果網站使用?HTTPS協議的話,可以在 HTTP 的基礎上加入 SSL/TLS 協議,依靠 SSL 證書來驗證服務器的身份,為客戶端和服務器端之間建立“SSL”通道,確保數據運輸安全。更多詳細的資料可以自行百度。
ssl的簡單介紹
SSL(Secure Sockets Layer?安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網絡通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡連接進行加密。
SSL是網站安全重要的防護。目前,SSL證書的使用范圍遍及世界各地網絡。SSL對于網站來說是十分重要的安全協議,因為它能保護網站以及用戶的個人隱私信息,以及數據的安全性和完整性。詳細介紹關于ssl。
網站使用ssl必將是一個趨勢。
據外媒報道,自2018年5月1日起,如果Https網站所使用的SSL憑證未出現在公共證書透明度(Certificate Transparency,以下簡稱CT)日志中,谷歌Chrome瀏覽器就會出現全屏警告畫面。
我安裝ssl證書中的具體主要操作步驟
1.安裝web服務器apache
2.安裝開源的openssl
3.申請域名證書上傳到服務器中
4.配置openssl加載證書文件
5.設置HTTP跳轉HTTPS
01安裝apache2
本次實驗使用騰訊云的服務器Ubuntu16.04(屬于Debian以下方法都可以實現)
使用ip:111.230.107.42
使用的域名:xsscss.cn?(提到此域名,我就得說一下我一直付費到2024年啦,都是money啊23333)
使用的證書:由騰訊云提供的免費證書(怎么申請自行百度)
1.1安裝apache
為了方便 我直接使用root權限操作一切(ubuntu?一般使用使用執行命令需要sudo)
1# sudo su
1# apt install apache2 -y
1.2瀏覽器訪問測試
至此安裝apache2完成,簡單介紹一下apache的目錄
安裝好了Apache2會自動啟動,但是自動啟動的不包含https僅僅是http默認的配置路徑
Apache配置文件路徑:?cd /etc/apache2/
Apache默認日志路徑:?cd /var/log/apache2
進入Apache的配置文件目錄
cd /etc/apache2/
查看目錄結構
tree
具體的目錄結構如下
apache2.conf
conf-available
conf-enabled
envvars
magic
mods-available
ports.conf
sites-available
sites-enabled
其中?apache2.conf?是整個Apache的主配置文件
02 安裝openssl
其實一般最新的服務器都會默認自帶openssl的,本次實驗我們覆蓋安裝最新的,是沒有影響的,如果非要卸載再安裝的給你一行代碼自己實現
1# apt remove openssl
2.1安裝openssl以及所需要的依賴包
1# apt install openssl -y
2# apt install libssl-dev -y
2.2加載ssl模塊
1# a2enmod ssl
2.3根據提示重啟apache服務
1# service apache2 restart
2.4加載成功后可到配置文件查看是否加載成功
1# cd /etc/apache2/mods-enabled
有以上圖中標記的兩個文件夾則加載成功
03 上傳證書到云服務器
我已將在騰訊云申請的免費的ssl證書下載到本地,當然通過openssl可以自己生成一個,但是有沒有頒發授權,會有提示網站證書不安全,如果是自己的設備安裝的話這個開源免費openssl的值得一搞。之前曾裝過深信服的桌面云服務器里面管理頁面系統都是ssl加密但是也都是證書不安全,但也沒什么不好。畢竟本地使用。但是自己網站的話每次都出現此網站證書不安全,給瀏覽你網站的朋友帶來一種不安全的印象。所以我們必須使用頒發的證書,可以買,很貴的,還好國內阿里云和騰訊云都有免費的。自己要有域名的話就去免費申請一個,跟著我給網站安裝一個ssl。
證書就是這樣
這次使用apache的
上傳上去
方法很多 什么搭建ftp什么的 或者存到自己一個網站的目錄下 wget一下啊
這次我使用xshell里面的一個工具 既可以下載又可以上傳 so easy!
安裝lrzsz工具上傳證書
1# apt install lrzsz
使用rz上傳sz下載
一般上傳或者wget的目錄都在家目錄,不懂Linux可以看看我之前的linux學習的文章
1# cd /home/ubuntu
2# rz
3# ls
將證書文件移動配置文件中去自己新建一個文件夾放證書就行(這樣做的意義就是趴在放在一般目錄被刪掉,而etc配置文件我么一般不會刪,除非卸載一些東西才會那樣干)
查看并及解壓
1# mkdir /etc/apache/ssl
2# mv /Apache.zip /etc/apache/ssl
3# unzip Apache.zip
看看證書里的文件是什么啊
1_root_bundle.crt是根證書鏈(公鑰)
2_xsscss.cn.crt證書公鑰(一般以域名命名)
3_xsscss.cn.key私鑰文件(一般以域名命名)
接下里我們要做的就是讓ssl模塊加載這三個文件
04 配置openssl
Apache加載SSL模塊后,會在/etc/apache2/sites-available下生成default-ssl.conf文件
需要配置三個地方
4.1進入配置
1# cd /etc/apache2/sites-available/
2# ls
3# vi default-ssl.conf
添加一行
ServerName www.xsscss.cn
添加(修改)鏈接到三個證書文件,注意自己ssl證書所在的路徑
1SSLCertificateFile ?????/etc/apache2/ssl/2_xsscss.cn.crt
2SSLCertificateKeyFile ?/etc/apache2/ssl/3_xsscss.cn.key
3SSLCertificateChainFile /etc/apache2/ssl/1_root_bundle.crt
4.2設置一個軟鏈接使其apache加載ssl配置文件
進入到site-enabled文夾中查看當期只有一個000-default.conf文件
通過一些命令做一個映射使其apache加載ssl配置文件
1#cd /etc/apache2/sites-enabled/
2#ls?
3#ln -s /etc/apache2/sites-available/default-ssl.conf ./
映射(創建軟鏈接)成功后會發現在/etc/apache2/sites-enabled/ 下增加了default-ssl.conf文件,實際是一個軟鏈接
4.3加載apache的rewrite模塊,并重啟apache2服務器
1# a2enmod rewrite
05 設置http跳轉https
終于快完了,累死我了,為了寫這篇文章,我重裝了服務器,做第二次實驗了。其實md語法也不難,就是很煩,不知每個地方用啥好,很糾結。
之前在IIS服務器弄個URL映射,很麻煩,下載東西什么的,煩的一匹,對于Linux,我們都知道所有都是修改文件添加幾行代碼,直接777就是干。233333
進入正題:
—修改兩個地方或者一個我這使用兩個地方:
url重定向嘛,就是訪問”http://xsscss.cn“ 自動跳轉到 “https://xsscss.cn"上去了
首先:配置我們最初說的apache.conf核心文件
修改 AllowOverride 參數None 為All 根據字面意思我們就知道了 允許覆蓋為all
修改前
修改后
·?然后:在網站根目錄下 /var/www使用 touch .htaccess創建.htaccess文件
1# cd /var/www/
2# touch .htaccess
先百描述一波.htaccess文件(或者”分布式配置文件”),全稱是Hypertext Access(超文本入口)。提供了針對目錄改變配置的方法, 即,在一個特定的文檔目錄中放置一個包含一個或多個指令的文件, 以作用于此目錄及其所有子目錄。作為用戶,所能使用的命令受到限制。管理員可以通過Apache的AllowOverride指令來設置。
這個文件要是有php環境等其他動態網站的話 我們需要自己新建一個把我們需要的URL跳轉規則放進去
這個的話有好幾種實現方法
1.全服務器網站跳轉
2.一個網站跳轉
3.某些頁面(目錄跳轉)
這里主要講下全服務器網站和單個網站跳轉
1# vi .htaceess
全服務器跳轉:
添加以下代碼(使用正則表達式過濾的,在Java和python爬蟲中用過,還有js驗證過濾用的也多)
1RewriteEngine on
2 RewriteCond %{SERVER_PORT} !^443$
3 RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
如果對某個目錄做強制跳轉,則使用以下代碼:
1RewriteEngine on
2 #RewriteBase /website
3 RewriteCond %{SERVER_PORT} !^443$
4 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
最后重啟服務
1# service apache2 restart
06 測試訪問
至此 Apache http訪問轉到https 配置結束
大功告成
參考以上方法也可以直接在別的環境下安裝ssl,大致就是安裝開源的open-ssl,,使用自己制作的證書或者使用第三方的證書。
需注意到地方:
前提是你的域名要解析到本ip,我這里已經解析過了
除此之外云服務器可能有安全規則防火全會關閉443端口,尤其阿里云,第一次給IIS aparke.cn配置的時候就入坑了 后來還是人工提交訂單幫我找到問題所在
注:本文為合天智匯原創,未經允許,嚴禁轉載!
日期:2018-04 瀏覽次數:6990
日期:2017-02 瀏覽次數:3686
日期:2017-09 瀏覽次數:3963
日期:2017-12 瀏覽次數:3768
日期:2018-12 瀏覽次數:5108
日期:2016-12 瀏覽次數:4809
日期:2017-07 瀏覽次數:13872
日期:2017-12 瀏覽次數:3736
日期:2018-06 瀏覽次數:4486
日期:2018-05 瀏覽次數:4672
日期:2017-12 瀏覽次數:3767
日期:2017-06 瀏覽次數:4184
日期:2018-01 瀏覽次數:4174
日期:2016-12 瀏覽次數:4134
日期:2018-08 瀏覽次數:4618
日期:2017-12 瀏覽次數:3979
日期:2016-09 瀏覽次數:6733
日期:2018-07 瀏覽次數:3412
日期:2016-12 瀏覽次數:3448
日期:2018-10 瀏覽次數:3589
日期:2018-10 瀏覽次數:3703
日期:2018-09 瀏覽次數:3812
日期:2018-02 瀏覽次數:3824
日期:2015-05 瀏覽次數:3731
日期:2018-09 瀏覽次數:3511
日期:2018-06 瀏覽次數:3635
日期:2017-02 瀏覽次數:4079
日期:2018-02 瀏覽次數:4579
日期:2018-02 瀏覽次數:4441
日期:2016-12 瀏覽次數:3775
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.