安裝SSL證書 and 根域名跳轉www域名

1.安裝自簽證書

自簽證書也就是不被公網承認的證書,可在局域網內進行簽名認證,其12306也是自簽證書,經過證書+nginx代理web服務器 能夠實現https鏈接php

 一.使用OpenSSL建立證書html

創建服務器私鑰python

openssl genrsa -des3 -out server.key 1024

Generating RSA private key, 1024 bit long modulus
..................++++++
.............++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:
140713263834776:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:823:You must type in 4 to 1023 characters
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:nginx

必須輸入密碼,並要此次驗證密碼git

二.生成一個證書請求csr文件 github

須要依次輸入服務器祕鑰,國家,地區,組織,emailweb

openssl req -new -key server.key -out server.csr

 生成的csr文件交給CA簽名後造成服務端本身的證書, 在此說明,common name選項儘可能使用域名瀏覽器

 三.去除key文件口令的命令安全

openssl rsa -in server.key -out server.key

四.使用上面的密鑰和CSR對證書進行簽名bash

openssl x509 -req  -days 365 -sha256   -in server.csr -signkey server.key -out servernew.crt

五.Nginx配置ssl

 server {
            listen 443 ssl;
            server_name myssl.com;
            index index.html index.htm index.php;
            root  /home/wwwroot/myssl;
        autoindex  on;
        include enable-php.conf;  
        access_log  /home/wwwlogs/access.log;
            ssl on;
            ssl_certificate      ssl/servernew002.crt;
            ssl_certificate_key  ssl/server002.key;
            ssl_session_cache    shared:SSL:10m;
            ssl_session_timeout 5m;
            ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
           }
  # http重定向https
  server {
            listen 80;
            server_name myssl.com;
            rewrite ^(.*) https://$server_name$1 permanent;
        }  

 參考: 

http://blog.csdn.net/ldx891113/article/details/50456273

http://blog.csdn.net/cangzihu/article/details/53488996

 

 2.安裝Let's Encrypt免費SSL證書

Let's Encrypt做爲一個公共且免費SSL的項目逐漸被廣大用戶傳播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等組織人員發起,主要的目的也是爲了推動網站從HTTP向HTTPS過分的進程,目前已經有愈來愈多的商家加入和贊助支持。

到目前爲止,Let's Encrypt得到IdenTrust交叉簽名,這就是說能夠應用且支持包括FireFox、Chrome在內的主流瀏覽器的兼容和支持。

1.獲取letsencrypt git文件 ,並執行生成證書

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --standalone --email service@myssl.com -d myssl.com -d myssl.com

在執行letsencrypt時會會安裝pythonDev環境(第一次),agree and yes

生成的證書目錄在"/etc/letsencrypt/live"下

進入子目錄有4個文件

cert.pem  - Apache服務器端證書
chain.pem  - Apache根證書和中繼證書
fullchain.pem  - Nginx所須要ssl_certificate文件
privkey.pem - 安全證書KEY文件

 

 

2.配置Nginx

 

server
    {
        listen 443 ssl;
        server_name myssl.com;
        index index.html index.htm index.php;
        root  /home/wwwroot/myssl;

        #error_page   404   /404.html;
        include enable-php.conf;
         if (!-e $request_filename){
                rewrite ^/(.*) /index.php?r=$1 last;
            }
        autoindex  on;
        ssl on;
        ssl_certificate      /etc/letsencrypt/live/myssl.com/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/myssl.com/privkey.pem;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout 5m;
        ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
        access_log  /home/wwwlogs/access.log  access;
    }
    
# http重定向https
server {
            listen 80;
            server_name myssl.com;
            rewrite ^(.*) https://$server_name$1 permanent;
        }

 

3.自動續期

Let's Encrypt申請的證書會有三個月的有效期

手動:

./letsencrypt-auto certonly --standalone --email service@myssl.com -d myssl.com -d myssl.com

 

用crontab進行定時執行續期腳本

 參考: http://www.open-open.com/lib/view/open1456025126839.html

 

 

根域名跳轉www域名

 if ($host = 'aaa.com') {
           rewrite ^/(.*)$ https://www.aaa.com/$1 permanent;
       }
相關文章
相關標籤/搜索