Nginx 下配置SSL證書的方法_Web服務器教程

      編輯Tag賺U幣
      教程Tag:SSL證書添加
      1、Nginx 配置 ssl 模塊
      默認 Nginx 是沒有 ssl 模塊的,而我的 VPS 默認裝的是 Nginx 0.7.63 ,順帶把 Nginx 升級到 0.7.64 并且 配置 ssl 模塊方法如下:
      下載 Nginx 0.7.64 版本,解壓 進入解壓目錄:

      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信息的話,

      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,于是乎:

      怎么樣,很有個性吧!

      2、使用 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;

      其他的配置信息和一般站點的一樣,不再重復。
      四、訪問測試結果

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

      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只能對應一個域名的證書,愛玩的朋友可以弄一個玩玩。

      來源:網絡搜集//所屬分類:Web服務器教程/更新時間:2011-12-08
      相關Web服務器教程