Nginx 下配置SSL證書的方法

一、Nginx 配置 ssl 模塊 
默認 Nginx 是沒有 ssl 模塊的,而個人 VPS 默認裝的是 Nginx 0.7.63 ,順帶把 Nginx 升級到 0.7.64 而且 配置 ssl 模塊方法以下: 
下載 Nginx 0.7.64 版本,解壓 進入解壓目錄: php

複製代碼代碼以下:

wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz 
tar zxvf nginx-0.7.64.tar.gz 
cd nginx-0.7.64 


若是要更改header信息的話, html

複製代碼代碼以下:

vi src/core/nginx.h 
#define NGINX_VERSION "0.7.62" 
#define NGINX_VER "nginx/" NGINX_VERSION 


上面的版本號和nginx本身修改 
編譯 
[code] 
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 
make 
make 
切記不要 make install 

由於是小網站,用不着平滑升級,直接 killall -HUP nginx 重啓 nginx 便可。 
OK,升級而且安裝好 ssl 模塊完畢,這裏我把 Nginx 修改爲了 zoulu,因而乎:

怎麼樣,頗有個性吧! 

二、使用 OpenSSL 生成證書 

①、生成RSA密鑰的方法 
openssl genrsa -out privkey.pem 2048 

有的證書要 1024 的,因此得: 
openssl genrsa -out privkey.pem 1024 

②、生成一個證書請求 
openssl req -new -key privkey.pem -out cert.csr 

會提示輸入省份、城市、域名信息等,重要的是,email 必定要是你的域名後綴的,好比 webmaster@zou.lu 而且能接受郵件! 

這樣就有一個 csr 文件了,提交給 ssl 提供商的時候就是這個 csr 文件 

(來源:http://www.lsproc.com/blog/nginx_ssl_config/) 

直接 cat cert.csr 

獲得一大串字符,好比這樣: 
-----BEGIN CERTIFICATE REQUEST----- 
MIIBsTCCARoCAQAwcTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkhCMQwwCgYDVQQH 
EwNTSloxDzANBgNVBAoTBkZhbmZvdTESMBAGA1UEAxMJZzFuZm91LmRlMSIwIAYJ 
KoZIhvcNAQkBFhN3ZWJtYXN0ZXJAZmFuZm91LmRlMIGfMA0GCSqGSIb3DQEBAQUA 
A4GNADCBiQKBgQC5l4PmZg6TCIpduefxq5gsLXN1JeQdBmUs+pEApeHmNoxE+R4k 
VkQUJzLj5o3ltQGJzYrcIfru8NryQSxaT/5IjeFwS7nIMsx8KPkQQ71BJazsiZj+ 
CdLDRJj1m/SrjTsNrfYj4rFFS1FXq7uEDyreUx7fyAljx70jPSsGBOGwRQIDAQAB 
oAAwDQYJKoZIhvcNAQEFBQADgYEACKCBQcnCq5yE3GFyN3NyxCQEvnspkIv9AqI4 
FcwqyHPZWkupp3wfubHY80IwtfjlGlTSynzE7FZLVpcbNfKLnAYlYEwDY7NukJNy 
pCbyqpJJXdAl3Jcun0NlLtSxTQpR+abO8va/BAO5Hp9h1rpSRtTdSJd2fC/owRV1 
BfRuJnA= 
-----END CERTIFICATE REQUEST----- 

提交給你的 ssl 提供商便可,通常半個鐘頭到一天時間就會發給你證書,如圖:

把全部文件所有上傳到一個特定的目錄,好比我是上傳到 /root/zoulu/ 

這裏,zoulukey.pem 和 zoulucert.csr 是本身在 VPS 生成的,剩下的都是證書籤發機構頒發的。 

通常狀況下,直接用證書籤發機構頒發的 crt 文件便可,好比 zou_lu.crt ,可是有不少證書籤發機構默認在 Firefox 中文版下是不會信任的,通過仔細研究,終於發現,原來得把證書籤發機構辦法給你的 crt 文件也放入才行。 

方法以下: 

合併 PositiveSSLCA.crt (證書籤發機構的 crt) 和 zou_lu.crt (本身域名的 crt) 

cat zou_lu.crt >> PositiveSSLCA.crt 

mv PositiveSSLCA.crt zou_lu.crt 

或者直接用記事本打開,而後複製 PositiveSSLCA.crt 裏面全部的內容到 zou_lu.crt 最下方便可。 

(來源:http://www.lsproc.com/blog/nginx_ssl_config/) 

③、修改 Nginx 配置 

listen 443; 
server_name zou.lu; 
index index.html index.htm index.php; 
root /home/zoulu; 
error_page 404 403 http://zou.lu; 

ssl on; 
ssl_certificate /root/zoulu/zou_lu.crt; 
ssl_certificate_key /root/zoulu/zoulukey.pem; 

其餘的配置信息和通常站點的同樣,再也不重複。 
4、訪問測試結果 

在 Firefox 英文版 / Chrome / Opera / Safari / IE 六、七、8 下均沒問題, https://zou.lu/ 在 Firefox 3.5.7 中文版下沒問題,遇到問題的童鞋,檢查你的系統時間,要是還不信任,那我也不是很清楚了,抱歉能力有限。 
5、如何得到免費的證書 

https://zou.lu/ 的證書是 PositiveSSL 簽發的,這是一家 Comodo 的 Reseller ,目前能夠經過以下途徑得到: 

去 NameCheap.com 註冊、轉移一個域名或者購買一款空間就能得到,並且是免費一年的哦! 

須要注意的是,NameCheap 註冊後頒發的證書沒有證書籤發機構的 PositiveSSLCA.crt ,這裏我就放一個,爲了你們安裝方便: 
-----BEGIN CERTIFICATE----- 
MIIFAzCCA+ugAwIBAgIQTM1KmltFEyGMz5AviytRcTANBgkqhkiG9w0BAQUFADCB 
lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug 
Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho 
dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt 
SGFyZHdhcmUwHhcNMDYwOTE4MDAwMDAwWhcNMjAwNTMwMTA0ODM4WjBxMQswCQYD 
VQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdT 
YWxmb3JkMRowGAYDVQQKExFDb21vZG8gQ0EgTGltaXRlZDEXMBUGA1UEAxMOUG9z 
aXRpdmVTU0wgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9T3lY 
IpPJKD5SEQAvwKkgitctVR4Q57h/4oYqpOxe6eSSWJZUDfMXukGeFZFV78LuACAY 
RYMm3yDMPbOhEzEKIVx5g3mrJBVcVvC0lZih2tIb6ha1y7ewwVP5pEba8C4kuGKe 
joteK1qWoOpQ6Yj7KCpNmpxIT4O2h65Pxci12f2+P9GnncYsEw3AAcezcPOPabuw 
PBDf6wkAhD9u7/zjLbTHXRHM9/Lx9uLjAH4SDt6NfQDKOj32cuh5JaYIFveriP9W 
XgkXwFqCBWI0KyhIMpfQhAysExjbnmbHqhSLEWlN8QnTul2piDdi2L8Dm53X5gV+ 
wmpSqo0HgOqODvMdAgMBAAGjggFuMIIBajAfBgNVHSMEGDAWgBShcl8mGyiYQ5Vd 
BzfVhZadS9LDRTAdBgNVHQ4EFgQUuMoR6QYxedvDlMboGSq8uzUWMaQwDgYDVR0P 
AQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwewYDVR0fBHQwcjA4oDagNIYy 
aHR0cDovL2NybC5jb21vZG9jYS5jb20vVVROLVVTRVJGaXJzdC1IYXJkd2FyZS5j 
cmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9VVE4tVVNFUkZpcnN0LUhh 
cmR3YXJlLmNybDCBhgYIKwYBBQUHAQEEejB4MDsGCCsGAQUFBzAChi9odHRwOi8v 
Y3J0LmNvbW9kb2NhLmNvbS9VVE5BZGRUcnVzdFNlcnZlckNBLmNydDA5BggrBgEF 
BQcwAoYtaHR0cDovL2NydC5jb21vZG8ubmV0L1VUTkFkZFRydXN0U2VydmVyQ0Eu 
Y3J0MA0GCSqGSIb3DQEBBQUAA4IBAQAdtOf5GEhd7fpawx3jt++GFclsE0kWDTGM 
MVzn2odkjq8SFqRaLZIaOz4hZaoXw5V+QBz9FGkGGM2sMexq8RaeiSY9WyGN6Oj5 
qz2qPMuZ8oZfiFMVBRflqNKFp05Jfdbdx4/OiL9lBeAUtTF37r0qhujop2ot2mUZ 
jGfibfZKhWaDtjJNn0IjF9dFQWp2BNStuY9u3MI+6VHyntjzf/tQKvCL/W8NIjYu 
zg5G8t6P2jt9HpOs/PQyKw+rAR+lQI/jJJkfXbKqDLnioeeSDJBLU30fKO5WPa8Y 
Z0nf1R7CqJgrTEeDgUwuRMLvyGPui3tbMfYmYb95HLCpTqnJUHvi 
-----END CERTIFICATE----- 

你也能夠試試 Startssl 的證書,缺點是在舊電腦,沒有更新的狀況下,IE 6是絕對不信任他的,詳見:http://blog.s135.com/startssl/ 

最後聲明一點,受信任的 ssl 證書必須有獨立IP,或者說,一個IP只能對應一個域名的證書,愛玩的朋友能夠弄一個玩玩。nginx

相關文章
相關標籤/搜索