亚洲国产AV一区二区三区久久_乱人妻中文字幕视频_91麻豆精品国产一级_精品国产欧美另类一区

您的當(dāng)前位置: 首頁>>松江商學(xué)院>>松江SEO優(yōu)化

松江教你如何配置Apache的ssl安全鏈接

瀏覽量(62568) 時間:2020-09-07

 第一步:生成ssl certficate文件 首先當(dāng)然是正常安裝apache2了,然后:

HTTPS改造

    sudo apache2-ssl-certificate

    生成一個1024位的RSA私鑰,并保存為/etc/apache2/ssl/apache.pem,如果你已經(jīng)有了CA證書,應(yīng)該也是可以拿過來直接使用,或者用來生成這個私鑰的(這應(yīng)該屬于另外一個話題了,我也沒有用過)。

    apache2-ssl-certificate執(zhí)行過程中要回答一些問題,如下,注意如果[]里已經(jīng)給出了默認(rèn)值,而你又想把這項置空的話,可以輸入英文句號“.”:

    Country Name (2 letter code) [GB]:US State or Province Name (full name) [Some-State]:. Locality Name (eg, city) []: Organization Name (eg, company; recommended) []:. Organizational Unit Name (eg, section) []:. server name (eg. ssl.domain.tld; required!!!) []:localhost Email Address []:fwolf@mail.com

    一般來說,server name和實際的網(wǎng)站域名還是保持一致比較方便。

    第二步:啟用ssl mod

    sudo a2enmod ssl

    或者

    :/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/ssl.conf ssl.conf :/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/ssl.load ssl.load

    第三步:添加監(jiān)聽端口,配置虛擬主機(jī) 添加端口:在/etc/apache2/ports.conf中增加一行“Listen 443”,顯然,如果你想讓默認(rèn)的80端口就使用ssl的話,就可以省略這一步了,并在后面的配置中略微調(diào)整。

    在apache虛擬主機(jī)的配置文件conf中,段,添加SSL的定義,比如:

    <VirtualHost *:443> ServerAdmin Fwolf ServerName www.fwolf.com SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem DirectoryIndex index.php index.html index.html.var

    然后重啟apache,就能夠使用https訪問網(wǎng)站了。

    如果想配置成80端口默認(rèn)就使用https,首先不需要在ports.conf中添加443端口的監(jiān)聽了,其次是在配置VirtualHost的時候也不用帶上:443了,但即使這樣,配置完成后使用http://www.seokuaipai.cn訪問配置好的網(wǎng)站時,還是會提示:

    Bad Request Your browser sent a request that this server could not understand. Reason: You’re speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please. Hint: https://www.fwolf.com/

    這是由于使用http協(xié)議去訪問一個https的端口造成的,最簡單的解決方法是使用https://www.seokuaipai.cn:80/來替代,不過,通過修改apache配置,把到80端口的http訪問重定向到443端口的https訪問效果會更好一些,就像下面的配置:

    NameVirtualHost *:80 <VirtualHost *:80> Redirect permanent / https://localhost/ </virtualhost> NameVirtualHost *:443 <VirtualHost *:443> ServerAdmin Fwolf ServerName www.fwolf.com </virtualhost> SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem …

    這樣所有http訪問就自動被重定向到https訪問上了,不過如果你只能在外網(wǎng)開一個端口的話就比較麻煩了,同時https也只能包含一個站點(無法通過ServerName辨識多個站點)。

    如果能夠把http和https協(xié)議同時綁定到一個端口上,用戶訪問的時候似乎就更方便了,不過很多地方都說這是不可能的,加密與明文協(xié)議不可能同時存在于一個端口上,這里有個討論給出了一種方案,雖然經(jīng)過我的實驗并不成功,還是把代碼貼出來,供有興趣的朋友繼續(xù)研究。

    <IfDefine !SSL> RewriteEngine on RewriteCond %{HTTPS} != on RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=permanent] </IfDefine>

    一個小問題:我生成的pem文件怎么有效期都只有一個月?難道這是默認(rèn)的?pem文件到期之后會發(fā)生什么事情呢?

    update @ 20070126

    默認(rèn)生成的pem文件確實只有一個月的有效期,過期之后倒是還能使用,只是在客戶端會有一個提示證書無效的確認(rèn),所以在生成證書的時候,記得用-day x參數(shù)指定有效期限,比如十年什么的。

    sudo apache2-ssl-certificate –force -days 3650

    (當(dāng)pem文件已經(jīng)存在的時候,需要使用–force參數(shù)指定覆蓋)

    參考: Need Apache2 SSL howto Apache2 SSL You’re speaking plain HTTP to an SSL-enabled server port. – HELP PLEASE !

    Update @ 2007-07-31

    Ubuntu 7.04 feisty中沒有apache2-ssl-cerfiticate這個命令,需要自己下載一個包,然后解壓,把里面的ssleay.cnf拷貝到/usr/share/apache2/,然后就可以執(zhí)行解壓的另外一個可執(zhí)行文件apache2-ssl-certificate來生成證書了。


以上文章來源于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系創(chuàng)一網(wǎng)的客服處理。謝謝!