預設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,如需轉載請自行聯系原作者