天天看點

Nginx服務的ssl認證和htpasswd認證

預設Nginx是沒有ssl子產品的,需要在編譯安裝的時候添加上ssl子產品!

首先是需要安裝Nginx服務,這裡我們不做詳細介紹,具體安裝可以參考我的“Nginx介紹及安裝配置”。

使用Openssl生成證書

1、生成RSA密鑰的方法

[root@web01 conf]# openssl genrsa -des3 -out kell.key 1024

Generating RSA private key, 1024 bit long modulus

.++++++

..++++++

e is 65537 (0x10001)

Enter pass phrase for kell.key:

Verifying - Enter pass phrase for kell.key:

2、生成一個證書請求

[root@web01 conf]# openssl req -new -keykell.key -out kell.csr

這裡會要求輸入省份,國家等一些資訊,在email要輸入域名字尾一樣,密碼是上一步輸入的密碼

3、拷貝一個不需要輸入密碼的密鑰檔案

[root@web01 conf]# openssl rsa -in kell.key -out kell_nopass.key

writing RSA key

密碼輸入上一次輸入的密碼

4、自己簽發證書

 [root@web01 conf]#openssl x509 -req -days 365 -in kell.csr -signkey kell.key -out kell.crt

配置Nginx配置檔案

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        #listen       80;

        listen       443;

        ssl on;

        ssl_certificate /application/nginx/conf/kell.crt;

        ssl_certificate_key /application/nginx/conf/kell_nopass.key;

        location / {

            root   html/www;

            index  index.html index.htm;

        }

    }

通過浏覽器https就可以通路了,如果需要rewrite,需要配置rewrite

通過htpasswd設定Nginx認證通路

由于htpasswd是http服務帶的指令,是以我們可以安裝http服務來得到這個指令,也可以隻安裝httpd-tools來安裝這個指令,這樣就不用安裝整個http服務

安裝htpasswd指令工具

[root@web01 conf]# yum install httpd-tools

[root@web01 conf]# which htpasswd

/usr/bin/htpasswd

建立賬号&密碼

[root@web01 conf]# htpasswd -bc /application/nginx/conf/htpasswd wangzhan 123456

Adding password for user wangzhan

[root@web01 conf]# chmod 400 /application/nginx/conf/htpasswd

[root@web01 conf]# chown nginx /application/nginx/conf/htpasswd

[root@web01 conf]# cat /application/nginx/conf/htpasswd

wangzhan:b2sfluv5673CE

在配置檔案中添加下面兩行

    auth_basic        "wangzhan 123456";

    auth_basic_user_file /application/nginx/conf/htpasswd;

重新開機服務,使用網站通路,會發現出現輸入認證密碼對話框

本文轉自 kesungang 51CTO部落格,原文連結:http://blog.51cto.com/sgk2011/1832207,如需轉載請自行聯系原作者

繼續閱讀