導航:首頁 > 文檔加密 > nginx目錄加密

nginx目錄加密

發布時間:2022-01-21 06:52:33

Ⅰ 急急急!!!centos nginx中http可以訪問thinkphp目錄但是https訪問不了

首先,必須明確443加密的概念——意思是你的伺服器:

(1)必須有FQDN,即完整的域名,localhost肯定不行
(2)所持有證書必須是指向該域名的,不能是隨意的證書。可以網路一下如何為域名准備證書
(3)其他證書機構可以驗證這個證書——盡管你可以申請一個免費證書,但是大多數證書每年都要花400塊。
可以使用自簽名證書做測試,不過都不能算完整的測試。

Ⅱ 如何用 Nginx 配置透明 HTTP 和 HTTPS 代理

Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。
1、首先需要配置站點的WoSign SSl證書

打開Nginx安裝目錄下conf目錄中的nginx.conf文件 找到
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
將其修改為 :
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate sslkey/public.cer; (證書公鑰)
ssl_certificate_key sslkey/private.key; (證書私鑰)
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
保存退出,並重啟Nginx。
通過https方式訪問您的站點,測試站點證書的安裝配置。

3、配置強身份認證
1、 修改nginx.conf文件
如果要求客戶採用客戶證書認證方式,可以在原來的配置下增加如下參數:
server {
......
......
......
ssl_verify_client on 要求SSL客戶證書認證。
ssl_client_certificate trust.cer 簽發客戶證書的CA證書,用來驗證客戶證書。
ssl_verify_depth 3 SSL客戶證書認證鏈長度。
}
4、重啟站點使用您的客戶端證書進行登陸測試

Ⅲ .nginx第一次的啟動的時候會創建哪些文件

nginx是個多進程web容器,不同的配置下它的啟動方式也是不同的,這里我只說說最典型的啟動方式。
它有1個master進程,和多個worker進程(最優配置的數量與CPU核數相關)。那麼,首先我們要找到main函數,它在src/core/nginx.c文件中。談到源碼了,這時我們先簡單看下源碼的目錄結構吧。
nginx主要有下列目錄:
src/core,這個目錄存放了基礎的數據結構像LIST、紅黑樹、nginx字元串,貫穿始終的一些邏輯結構如ngx_cycle_s、ngx_connection_s等,還有對一些底層操作的封裝如log、文件操作、共享內存、內存池等,最後還有個nginx.c這個main啟動函數了。
src/event,這個目錄下存放與抽象事件相關的結構和鉤子函數。nginx是以事件驅動處理流程的,事件自然是整個體系的核心了,這里定義了最核心的ngx_event_s結構。
src/event/moles目錄存放了具體的種種事件驅動方式,例如epoll、kqueue、poll、aio、select等,它們通過ngx_event_actions_t結構體中的鉤子掛在nginx中。nginx啟動時會根據配置來決定使用哪種實現方式。
src/os/unix中存放了unix系統下許多函數調用的UNIX實現。
src/http目錄存放到http mole的相關實現,這個mole負責處理http請求,包括協議的解析以及訪問backend server的代碼。
src/http/mole目錄存放http mole類型的一些特定用途的mole,比如gzip處理加密,圖片壓縮等。
有個初步了解後,回到main函數中,順序看看我們感興趣的事情。它先執行了ngx_time_init,為什麼要初始化時間呢?nginx考慮的還是很周到的,取系統時間gettimeofday是系統調用,這意味著,需要發送中斷給linux內核,內核需要做進程間切換來處理這個調用。這是一個不能忽視成本的函數。nginx封裝了時間函數,這樣,每次我們需要處理時間時,並不是調用gettimeofday,而是nginx自己緩存的時間,這樣大量減少了系統調用,取當前時間這事可是誰都愛乾的。
那麼,nginx是怎麼維護自己的這個時鍾呢?如何保證用戶取到的當前時間是有意義的?nginx設計者的出發點是,nginx是事件驅動機制,當一批事件發生時,也就是epoll_wait返回時,會取一次gettimeofday來更新自己的時間,然後調用各個事件對應的處理函數。這些函數都會保證自己是無阻塞的,也就是毫秒級的處理能力,所以,在任何一個事件處理函數中,取到的時間都是之前epoll_wait剛返回時取到的時間,這樣,即使拿到的時間慢了幾毫秒也無所謂。關鍵是,每個函數都是無阻塞的,都要迅速的把控制權交還給nginx,這是基本設計原則哈。

Ⅳ 如何在CentOS 7上使用Apache或Nginx加密Tomcat 8連接

你的代碼有錯誤,發生了段錯誤,就是內存訪問錯誤 需要改正代碼 上圖彈出的是匯編調試器

Ⅳ 如何在NGINX網站伺服器中實施SSL完美前向保密技術

如果要配置協議TLS1.2,HSTS是最高加密條件,不過技術難度很大,可以淘寶Gworg配置。
Nginx安裝SSL證書:https://www.gworg.com/ssl/107.html
Nginx 自動跳轉到HTTPS:https://www.gworg.com/ssl/167.html
注意:安裝防火牆需要設置允許443埠或關閉防火牆,如果本地伺服器安裝安全狗的,請允許443埠。

Ⅵ nginx 支持https後 可以獲取解密內容嗎

如果需要解密https的數據
只需要得到nginx上配置的加密秘鑰即可
https有兩個秘鑰,一個用於加密,一個用於解密
伺服器用A加密,則客戶端用B解密
如果知道伺服器的A秘鑰,則可以解開客戶端B加密後的內容

Ⅶ nginx https 會加密嗎

HTTPS屬於加密信任傳輸。
如果您要客戶端驗證SSL雙向認證的,需要聯系注冊商簽發。

Ⅷ 如何正確設置nginx中remote

做網站時經常會用到remote_addr和x_forwarded_for這兩個頭信息來獲取客戶端的IP,然而當有反向代理或者CDN的情況下,這兩個值就不夠准確了,需要調整一些配置。

什麼是remote_addr

remote_addr代表客戶端的IP,但它的值不是由客戶端提供的,而是服務端根據客戶端的ip指定的,當你的瀏覽器訪問某個網站時,假設中間沒有任
何代理,那麼網站的web伺服器(Nginx,Apache等)就會把remote_addr設為你的機器IP,如果你用了某個代理,那麼你的瀏覽器會先
訪問這個代理,然後再由這個代理轉發到網站,這樣web伺服器就會把remote_addr設為這台代理機器的IP。

什麼是x_forwarded_for

正如上面所述,當你使用了代理時,web伺服器就不知道你的真實IP了,為了避免這個情況,代理伺服器通常會增加一個叫做x_forwarded_for
的頭信息,把連接它的客戶端IP(即你的上網機器IP)加到這個頭信息里,這樣就能保證網站的web伺服器能獲取到真實IP

使用HAProxy做反向代理

通常網站為了支撐更大的訪問量,會增加很多web伺服器,並在這些伺服器前面增加一個反向代理(如HAProxy),它可以把負載均勻的分布到這些機器
上。你的瀏覽器訪問的首先是這台反向代理,它再把你的請求轉發到後面的web伺服器,這就使得web伺服器會把remote_addr設為這台反向代理的
IP,為了能讓你的程序獲取到真實的客戶端IP,你需要給HAProxy增加以下配置

option forwardfor

它的作用就像上面說的,增加一個x_forwarded_for的頭信息,把你上網機器的ip添加進去

使用Nginx的realip模塊

當Nginx處在HAProxy後面時,就會把remote_addr設為HAProxy的IP,這個值其實是毫無意義的,你可以通過nginx的realip模塊,讓它使用x_forwarded_for里的值。使用這個模塊需要重新編譯Nginx,增加--with-http_realip_mole參數

set_real_ip_from 10.1.10.0/24;
real_ip_header X-Forwarded-For;

上面的配置就是把從10.1.10這一網段過來的請求全部使用X-Forwarded-For里的頭信息作為remote_addr

將Nginx架在HAProxy前面做HTTPS代理

網站為了安全考慮通常會使用https連接來傳輸敏感信息,https使用了ssl加密,HAProxy沒法直接解析,所以要在HAProxy前面先架台
Nginx解密,再轉發到HAProxy做負載均衡。這樣在Web伺服器前面就存在了兩個代理,為了能讓它獲取到真實的客戶端IP,需要做以下配置。

首先要在Nginx的代理規則里設定

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

這樣會讓Nginx的https代理增加x_forwarded_for頭信息,保存客戶的真實IP。

其次修改HAProxy的配置

option forwardfor except 10.1.10.0/24

這個配置和之前設定的差不多,只是多了個內網的IP段,表示如果HAProxy收到的請求是由內網傳過來的話(https代理機器),就不會設定x_forwarded_for的值,保證後面的web伺服器拿到的就是前面https代理傳過來的。

為什麼PHP里的HTTP_X_FORWARDED_FOR和Nginx的不一樣

當你的網站使用了CDN後,用戶會先訪問CDN,如果CDN沒有緩存,則回源站(即你的反向代理)取數據。CDN在回源站時,會先添加
x_forwarded_for頭信息,保存用戶的真實IP,而你的反向代理也會設定這個值,不過它不會覆蓋,而是把CDN伺服器的IP(即當前
remote_addr)添加到x_forwarded_for的後面,這樣x_forwarded_for里就會存在兩個值。Nginx會使用這些值里
的第一個,即客戶的真實IP,而PHP則會使用第二個,即CDN的地址。為了能讓PHP也使用第一個值,你需要添加以下fastcgi的配置。

fastcgi_param HTTP_X_FORWARDED_FOR $http_x_forwarded_for;

它會把nginx使用的值(即第一個IP)傳給PHP,這樣PHP拿到的x_forwarded_for里其實就只有一個值了,也就不會用第二個CDN的IP了。

忽略x_forwarded_for

其實,當你使用了Nginx的realip模塊後,就已經保證了remote_addr里設定的就是客戶端的真實IP,再看下這個配置

set_real_ip_from 10.1.10.0/24;
real_ip_header X-Forwarded-For;

它就是把x_forwarded_for設為remote_addr,而nginx里的x_forwarded_for取的就是其中第一個IP。

使用這些設置就能保證你的remote_addr里設定的一直都是客戶端的真實IP,而x_forwarded_for則可以忽略了:)

Ⅸ 如何配置Nginx,Apache伺服器的alias和密碼認證

從年前電腦換成linux系統後就沒寫東西,最近有點懶,在這里講述下nginx alias 功能,不是server alias .
首先看下看下apache 別名 怎麼配置的:
<VirtualHost *:80>
DocumentRoot /www/hou.net/www 這是虛擬主機的根目錄吧,但是phpMYadmin 不在這個目錄下,想訪問。
ServerName www.hou.net
ServerAlias hou.net
Alias /sdb "/www/public/phpMyAdmin/" 就需要 別名功能,:http://www.hou.com/sdb 這樣就安全多了。
<Directory "/www/public/phpMyAdmin/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
一 .Apache認證
認證的類型:Basic
Digest摘要
認證方法:A、容器認證: ……
B、隱藏文件認證創建.htaccess文件
方法一、容器認證
A、 進入配置文件 vi /etc/httpd/conf/httpd.conf
B、 配置:大約在531行附近 配置如下:
AllowOverride None ##不允許通過隱藏認證,即通過容器認證
AuthType Basic ##認證類型為Basic
AuthName 「ajian」 ##認證名字為Ajian
AuthUserFile /var/www/passwd/pass ##pass 為認證密碼文件,指定密碼文件存放的位置。
Require valid-user ##有效用戶(注意大小寫,因為Word的原因有些大小寫有變化)
C、 創建目錄 mkdir -p /var/www/passwd
進入目錄 cd /var/www/passwd
D、創建Apache用戶 htpasswd -c pass ajian ##pass 為密碼文件Ajian為用戶
更改 把Pass文件的使用權給Apache: chown apache.apache pass
附:再在Pass文件中添加一個用戶:htpasswd pass tt ##添加一個TT的用戶到Pass文件中
E、重啟服務並測試
方法二、通過隱藏認證
和上面差不多 不過配置不一樣
Httpd主配置文件
AllowOverride AuthConfig
創建隱藏文件並放到要通過認證的目錄
Eg: vi /var/www/html/mrtg
AuthType Basic
AuthName 「Ajian」
AuthUserFile /var/www/passwd/pass
Require valid-user
下面是例子
二、Nginx 登錄認證
nginx 的 http auth basic 的密碼是用 crypt(3) 加密的。用 apache 的 htpasswd 可以生成密碼文件。
沒有 apache 自行安裝。我安裝的是 apache2,/usr/local/apach2。
cd /usr/local/nginx/conf
/usr/local/apache2/bin/htpasswd -c -d pass_file user_name
#回車輸入密碼,-c 表示生成文件,-d 是以 crypt 加密。
vi nginx.conf
cd /usr/local/nginx/conf /usr/local/apache2/bin/htpasswd -c -d pass_file user_name #回車輸入密碼,-c 表示生成文件,-d 是以 crypt 加密。 vi nginx.conf

在 nginx.conf 文件中加入授權聲明。這里要注意 nginx 0.6.7 開始,auth_basic_user_file 的相對目錄是 nginx_home/conf,以前版本的相對目錄是 nginx_home。
server {
listen 80;
server_name tuan.xywy.com;
root /www/tuangou;
index index.html index.htm index.php;
autoindex on;
auth_basic "input you user name and password";
auth_basic_user_file htpasswd.file;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/tuangou$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404.php;
error_page 403 /404.php;
access_log /logs/tuan_access.log main;
}
針對目錄的認證,在一個單獨的location中,並且在該location中嵌套一個解釋php的location,否則php文件不會執行並且會被下載。auth_basic在嵌套的location之後。
server {
listen 80;
server_name tuan.xywy.com;
root /www/tuangou;
index index.html index.htm index.php;
autoindex on;
location ~ ^/admin/.* {
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/tuangou$fastcgi_script_name;
include fastcgi_params;
}
root /www/tuangou/ ;
auth_basic "auth";
auth_basic_user_file htpasswd.file;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
access_log /logs/tuan_access.log main;
}
三.nginx alias功能配置自動列目錄
server {
listen www.hou.com:88;
server_name www.hou.com;
autoindex on; //開啟列目錄功能。
# charset gbk;
location /club { 訪問的名字http://www.hou.com:88/club
alias /www/clublog/club.xywy.com/; 這是伺服器上存放日誌的地方
} 這段意思 訪問www.hou.com:88/club 就看到club目錄的東東了。
location /{
root /www/access;
這段location 也可以沒有 www.hou.com:88 出來的是默認nxing 頁面
# index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
上面nginx配置意思就是: 訪問http://hou.xywy.com/:88認證進去是默認訪問伺服器上/www/access/裡面的目錄,認證進去後url=http://hou.xywy.com:88/club 就出來 /www/clublog/club.xywy.com/ 裡面的目錄的內容了。,可能很繞,仔細分析就好了。
root 和 alias 的區別。
最基本的區別:alias指定的目錄是准確的,root是指定目錄的上級目錄,並且該上級目錄要含有location指定名稱的同名目錄。另外,根據前文所述,使用alias標簽的目錄塊中不能使用rewrite的break。
這樣在看這段就很清晰了,
location /abc/ {
alias /home/html/abc/;
}
在這段配置下,http://test/abc/a.html就指定的是/home/html/abc/a.html。這段配置亦可改成
location /abc/ {
root /home/html/;
}
這樣,nginx就會去找/home/html/目錄下的abc目錄了,得到的結果是相同的。
但是,如果我把alias的配置改成:
location /abc/ {
alias /home/html/def/;
}
那麼nginx將會從/home/html/def/取數據,這段配置還不能直接使用root配置,如果非要配置,只有在/home/html/下建立一個 def->abc的軟link(快捷方式)了。
一般情況下,在location /中配置root,在location /other中配置alias是一個好習慣。
至於alias和root的區別,我估計還沒有說完全,如果在配置時發現奇異問題,不妨把這兩者換換試試。
剛開始我也搞來高去搞了很久包括認證單獨一個目錄 CGI 問題,希望大家成功。出現問題可以向我咨詢大家共同進步!

Ⅹ 只是nginx 開啟 ssl 後端的 tomcat 不用 ssl,這樣有安全風險嗎

如果能確保nginx到Tomcat的網路鏈路是安全的,不會被監聽、篡改,可以不用ssl
如nginx和Tomcat位於安全可信的區域網內,二者通信可以不加密

閱讀全文

與nginx目錄加密相關的資料

熱點內容
工作三年的大專程序員 瀏覽:728
java畢業設計文獻 瀏覽:143
籌碼集中度指標源碼 瀏覽:482
listsortjava 瀏覽:186
plc閃光電路編程實例 瀏覽:299
socket編程試題 瀏覽:206
華為的伺服器怎麼設置從光碟機啟動 瀏覽:871
程序員真的累嗎 瀏覽:328
學信網app為什麼刷臉不了 瀏覽:874
天蠍vs程序員 瀏覽:996
單片機下載口叫什麼 瀏覽:190
程序員的道 瀏覽:926
雲伺服器不實名違法嗎 瀏覽:558
怎樣查看文件夾圖片是否重復 瀏覽:995
文件怎麼導成pdf文件 瀏覽:808
打開sql表的命令 瀏覽:103
安卓手機如何面部支付 瀏覽:38
天元數學app為什麼登錄不上去 瀏覽:825
明日之後為什麼有些伺服器是四個字 瀏覽:104
安卓系統l1是什麼意思 瀏覽:26