阿里雲每一個域名都有一個免費默認簽發有效時長爲1年,用於我的及測試的ssl證書,要申請。html
申請成功後,下載證書。證書內有兩個文件:.key和.pem,上傳到你的linux服務器。linux
根據使用的web服務器,配置ssl。阿里雲證書下載頁面有配置教程。如下爲nginx:nginx
( 1 ) 在Nginx的安裝目錄下建立cert目錄,而且將下載的所有文件拷貝到cert目錄中。若是申請證書時是本身建立的CSR文件,請將對應的私鑰文件放到cert目錄下而且命名爲1529170946016.key;
( 2 ) 打開 Nginx 安裝目錄下 conf 目錄中的 nginx.conf 文件,找到:
# HTTPS server
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}
( 3 ) 將其修改成 (如下屬性中ssl開頭的屬性與證書配置有直接關係,其它屬性請結合本身的實際狀況複製或調整) :
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/1529170946016.pem;
ssl_certificate_key cert/1529170946016.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
保存退出。
( 4 )重啓 Nginx。
複製代碼
緣由:安裝nginx的時候沒有安裝http_ssl_module模塊
解決方法:
1. 查看是否安裝http_ssl_module模塊
/usr/local/nginx/sbin/nginx -V
2. 生成新的Makefile文件:
./configure --prefix=/usr/local/nginx --with-http_ssl_module
3. 編譯文件:
make
這裏不要進行make install,不然就是覆蓋安裝
4. 而後備份原有已安裝好的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
5. 而後將剛剛編譯好的nginx覆蓋掉原有的nginx(這個時候nginx要中止狀態)
cp ./objs/nginx /usr/local/nginx/sbin/
6. 而後啓動nginx,仍能夠經過命令查看是否已經加入成功
/usr/local/nginx/sbin/nginx -V
configure arguments:後面顯示
--prefix=/usr/local/nginx --with-http_stub_status_module
複製代碼