1. 程式人生 > >Nginx配置自簽名ssl

Nginx配置自簽名ssl

Nginx ("engine x") 是一個高效能的HTTP反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器

實驗環境:ubuntu14.04(阿里雲伺服器)

首先安裝Nginx:apt-get install nginx-full(如果沒有的話,使用命令apt-cache search nginx 自己找安裝包,這個靠感覺吧,或者去nginx的官網下載原始碼包安裝)

第二,瞭解幾個命令的不同

1、service nginx -s reload(這個命令是不能使用的,etc下的nginx指令碼沒有編寫這個引數把)

2、service nginx reload(可以使用,正常的命令嘛)

3、service nginx -t(這個命令是檢查配置檔案的正確性,不能使用)

4、/usr/sbin/nginx -s reload(可以使用,推薦使用這個命令,原因在-s引數)

5、/usr/sbin/nginx  -t(可以使用,預設檢查/etc/nginx/nginx.conf配置檔案的正確性)

PS:引數間使用空格隔開

1.建立網站證書存放目錄
shell> cd /opt
shell> mkdir ssl;
shell>cd ssl

2.製作CA證書
shell> openssl genrsa -des3 -out ca.key 2048
shell> openssl req -new -x509 -days 7305 -key ca.key -out ca.crt

3.生成nginx伺服器所需證書,並用CA簽名
shell> openssl genrsa -des3 -out client.key 1024
shell> openssl req -new -key client.key -out client.csr
shell> openssl x509 -req -in client.csr -out client.pem -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650


4.檢視證書檔案
shell> pwd
/usr/local/nginx/conf/ssl
shell> ls
ca.crt  ca.key  ca.srl  client.csr  client.key  client.pem

PS:生成證書的時候會提示輸入密碼,這個密碼要記住,後面會用到。而且你生成其他檔案(其他證書相關的)的時候也會用到

進入/etc/nginx/sites-available檔案下,使用命令nano deafult編輯server配置檔案,追加如下程式碼(這個就在最外層,不用巢狀在什麼裡面)

server{
    listen 443;
    server_name www.xxhui.space;
    ssl on;
    ssl_certificate /opt/ssl/client.pem;
    ssl_certificate_key /opt/ssl/client.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;
    server_name localhost;
    root /usr/share/nginx/html;
    location / {
        index index.html 50x.html;
    }
}
PS:建議複製貼上,自己手打的話主義使用四個空格來對齊。參考我上面“基於Nginx的SSL證書配置”的話請修改前面的對齊,因為他不使用空格,檢測報錯

第五、檢查配置檔案正確性

shell> /usr/sbin/nginx -t
//會提示client證書的密碼
shell> /usr/sbin/nginx restart
//配置的ssl必須重啟才能生效。所以不要使用reload命令
//這裡也會提示輸入client證書的密碼

第六、檢驗

直接在瀏覽器輸入你的https://server_name(server_nam為你的配置檔案的server_name那裡