Nginx配置自簽名ssl
阿新 • • 發佈:2019-02-15
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配置檔案,追加如下程式碼(這個就在最外層,不用巢狀在什麼裡面)
PS:建議複製貼上,自己手打的話主義使用四個空格來對齊。參考我上面“基於Nginx的SSL證書配置”的話請修改前面的對齊,因為他不使用空格,檢測報錯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; } }
第五、檢查配置檔案正確性
shell> /usr/sbin/nginx -t
//會提示client證書的密碼
shell> /usr/sbin/nginx restart
//配置的ssl必須重啟才能生效。所以不要使用reload命令
//這裡也會提示輸入client證書的密碼
第六、檢驗
直接在瀏覽器輸入你的https://server_name(server_nam為你的配置檔案的server_name那裡