Nginx下配置HTTPS(SSL)安全站點

2021-05-22 15:12:15 字數 2675 閱讀 9820

一、準備證書

通常情況下**的ssl證書是由專門的ca機構(如verisign)頒發,同時需要交納一定數額的費用。可是對於平時開發測試或其他情況下,我們自己也可以充當ca來生成自己頒發的證書。當然與前者相比缺點很明顯:不能獲得各個瀏覽器的信任,會彈出警告提示。如:

好訊息是,對安全性要求稍低的**現在可以考慮使用免費的ca認證(貌似是其級別最低的證書)。

跟verisign一樣,startssl(**:http://www.startssl.com,公司名:startcom)也是一家ca機構,它的根證書很久之前就被一些具有開源背景的瀏覽器支援(firefox瀏覽器、谷歌chrome瀏覽器、蘋果safari瀏覽器等)。

在2023年9月份,startssl竟然搞定了微軟:微軟在公升級補丁中,更新了通過windows根證書認證程式(windows root certificate program)的廠商清單,並首次將startcom公司列入了該認證清單,這是微軟首次將提供免費數字驗證技術的廠商加入根證書認證列表中。現在,在windows 7或安裝了公升級補丁的windows vista或windows xp作業系統中,系統會完全信任由startcom這類免費數字認證機構認證的數字證書,從而使startssl也得到了ie瀏覽器的支援。

下面進入正題,首先要生成獲得證書所需的金鑰等檔案:

openssl genrsa -des3 -out test.com.key 1024

openssl req -new -key test.com.key -out test.com.csr

openssl rsa -in test.com.key -out test.com.key

詳細圖示:

把上面生成的檔案內容提交給ca,即可換取證書;若自行生成則:

openssl x509 -req -days 365 -in test.com.csr -signkey test.com.key -out test.com.crt

詳細圖示:

現在已有這些檔案:

-rw-r--r-- 1 root root 936 05-24 19:17 test.com.crt

-rw-r--r-- 1 root root 696 05-24 19:06 test.com.csr

-rw-r--r-- 1 root root 891 05-24 19:07 test.com.key

二、配置nginx

(我的測試環境是linux-2.6.18 + nginx-0.8.35)

由於http_ssl_module不屬於nginx的基本模組,所以需要加上引數 --with-http_ssl_module 重新編譯安裝

例如:

./configure --user=username --group=groupname --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

make && make install

安裝完成後修改nginx配置,開啟ssl並監聽https的443埠,指定證書和金鑰

server

listen  443;

server_name  www.test.com;

index index.html index.htm index.php;

root  /data/www;

ssl on;

ssl_certificate /data/ssl/test.com.crt;

ssl_certificate_key /data/ssl/test.com.key;

還可以如下設定,以滿足特殊需求(http的www域和https的secure域共享images域的資源)

需要特別注意的一點:此時訪問開放單個埠的子域時會按埠走,而忽略網域名稱!

ssl_certificate  /data/ssl/test.com.crt;

ssl_certificate_key  /data/ssl/test.com.key;

server {

listen  80;

server_name   www.test.com;

server {

listen  443 ssl;

server_name  secure.test.com;

server {

listen  80;

listen  443;

server_name  images.test.com;

沒意外的話,重啟nginx後即可生效。

自行頒發的證書訪問時會出現前文提到的警告框

firefox的警告如下:

三、參考資料

全球可信並且唯一免費的https(ssl)證書頒發機構:startssl

用nginx配置https加密站點

nginx 配置 ssl 證書 + https 站點小記

nginx + php + https 配置用例

nginx ssl加密**配置指南

nginx ssl模組引數配置

windows環境下Nginx配置

作為乙個前端,在工作的時候肯定會遇到這樣的實際問題,就是要讓別人看到跑在你自己機子上localhost的頁面。這個時候就需要靠apache和iis幫忙了,當然現在有許多整合好的mysql和apache等框架,例如我自己本來就是使用很簡單的speedamp,小白式操作就ok了。但是之前一直久聞ngin...

centos下nginx的配置

支援php 擴充套件 yum install php fpm 重啟 service php fpm start 更改配置 gedit etc nginx conf.d default.conf 找到這段配置 location php 去掉注釋,改為 location php 測試環境 新增檔案 to...

CentOS 下Nginx環境配置

linux版本 centos7 64位 nginx依賴元件 gcc openssl devel pcre devel zlib devel 快速安裝依賴 yum install gcc openssl devel pcre devel zlib devel 解壓 tar zxvf nginx 1.9...