遠程訪問tomcat8.5的Manager App管理頁面時出現403 Access Denied問題的解決方案(詳細過程)

  1. tomcat版本說明:打開apache的官網http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.1/bin/

https://img-blog.csdnimg.cn/20190728103653834.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODEzMzY2MA==,size_16,color_FFFFFF,t_70

       從以上部分截圖中可以看出,tomcat區分windows和linux系統,使用者可以根據自己的系統版本下載相應文件,windows用戶下載exe或者zip的,linux用戶下載tar.gz的。圖中紅色方框標記的兩個分別是windows64位和32位系統的tomcat文件,綠色方框標記的是liunx系統的tomcat文件。目前最新版本是tomcat9;

2.下載說明:一般下載解壓版的,方便使用;

3.使用環境說明:jdk1.8 + tomcat8.5 + linux CentOs7(在虛擬機中);

4.安裝步驟:

4.1. 上傳文件到虛擬機:使用SecureCRT連接到虛擬機中的CentOS,在SecureCRT中使用快捷鍵"Alt+P"打開SFTP窗口,將本地下載好的apache-tomcat-8.5.43.tar.gz文件拖到該窗口,文件將自動上傳到虛擬機中CentOs中的根目錄~下;

4.2. 在CentOS中創建 /apache/tomcat目錄:

cd /  

mkdir apache

cd apache

mkdir tomcat

4.3. 解壓apache-tomcat-8.5.43.tar.gz文件到4.2步中創建的/apache/tomcat/目錄下:在CentOS的根目錄 ~ 下輸入以下命令,等待解壓完成;

tar -zxvf apache-tomcat-8.5.43.tar.gz -C /apache/tomcat/

4.4 配置環境變量:將tomcat8.5的根目錄/apache/tomcat/apache-tomcat-8.5.43/添加至CentOs的profile配置文件的PATH路徑中;

cd /etc  //進入CentOs的etc目錄

vi profile  //編輯profile配置文件

在該文件中,快捷鍵"Shift + a",進入編輯模式,在最後一行添加如下配置信息;

export TOMCAT_HOME=/apache/tomcat/apache-tomcat-8.5.43/

export PATH=$PATH:$TOMCAT_HOME/bin/

之後,按Esc鍵退出編輯模式,再按快捷鍵"Shift + z"保存退出該文件;最後輸入source profile命令重新加載該配置文件;

4.5 測試tomcat是否配置成功:

回到 ~ 目錄,輸入startup.sh,如果tomcat啓動成功,即表示配置已完成;

5.在宿主機中進行遠程訪問虛擬機中的tomcat主頁:

我的宿主機使用的是win7系統,打開瀏覽器,地址欄輸入192.168.225.128:8080;(虛擬機的IP地址是192.168.225.128);如果出現以下界面,說明虛擬機中的tomcat已正常啓動;

https://img-blog.csdnimg.cn/20190728112405665.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODEzMzY2MA==,size_16,color_FFFFFF,t_70

6. 遠程向虛擬機中的tomcat中部署本地web項目:

需要訪問tomcat的Manager App應用管理程序實現遠程部署操作;此時發現無法進入Manager App管理界面,頁面提提示403 Access Denied錯誤,這是因爲你沒有對manager應用的訪問權限。來看下tomcat給出的解釋:對於Tomcat 7以上,使用管理器應用程序所需的角色已從單個管理器角色更改爲以下四個角色。您需要分配您希望訪問的功能所需的角色。

  • manager-gui - 允許訪問HTML GUI和狀態頁面
  • manager-script - 允許訪問文本界面和狀態頁面
  • manager-jmx - 允許訪問JMX代理和狀態頁面
  • manager-status - 僅允許訪問狀態頁面

HTML接口受CSRF保護,但文本和JMX接口不受保護。爲了保持CSRF保護:

  • 具有manager-gui角色的用戶不應被授予manager-script或manager-jmx角色。
  • 如果通過瀏覽器訪問text或jmx接口(例如,爲了測試,因爲這些接口用於工具而非人類),則必須在之後關閉瀏覽器以終止會話。

6.1. 配置tomcat-users.xml文件:回到SecureCRT中,進入到CentOS的/apache/tomcat/apache-tomcat-8.5.43/conf目錄中修改tomcat-users.xml配置文件;

cd /apache/tomcat/apache-tomcat-8.5.43/conf

vi tomcat-users.xml

在</tomcat-users>標籤前面添加如下代碼:創建manager-gui角色,並將該角色分配給用戶自定義的tomcat用戶;

<role rolename="manager-gui"/>

<user username="tomcat" password="admin" roles="manager-gui"/>

如果需要訪問host-manager應用管理程序,還需要創建admin-gui角色,並將該角色分配給tomcat用戶,具體配置信息如下所示:

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

<user username="tomcat" password="admin" roles="manager-gui,admin-gui"/>

然後重啓tomcat,重新在宿主機遠程訪問manager app頁面,此時依舊會出現403 Access Denied錯誤,這是由於訪問的ip地址受到了manager應用程序的限制。需要對anager應用程序的相關配置文件進行對應配置;

6.1. 配置manager應用程序中的context.xml文件:回到SecureCRT中,進入到CentOS的/apache/tomcat/apache-tomcat8.5.43/webapps/manager/META-INF/目錄中修改context.xml配置文件;

cd /apache/tomcat/apache-tomcat8.5.43/webapps/manager/META-INF

vi context.xml

我們將裏面的以下內容註釋掉或修改爲;

<Valve className="org.apache.catalina.valves.RemoteAddrValve"

allow="192\.168\.225\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

allow="192\.168\.225\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /表示允許本地迴環地址及192.168.225.0網段訪問manager應用程序;

你需要根據自己虛擬機的IP修改訪問網段的地址或者具體的IP。比如你的網段是192.168.1.0,可以寫成192\.168\.1\.\d+;或者允許192.168.1.100訪問,寫成192\.168\.1\.100;如果你不需要限定允許訪問manager或host-manager應用程序的網段或具體IP,那麼就可以將以上兩行配置註釋掉,此時所有用戶都可以訪問到這兩個應用,爲安全起見,不建議採用直接註釋的方式;

如果需要要訪問host-manager應用程序,還需要修改host-manager應用程序中的context.xml文件,修改內容和上面一樣。

最後保存退出配置文件,然後重啓tomcat,重新訪問manager app頁面,正確輸入設置的用戶名和密碼,即可訪問頁面。

 


 

   

      


 


 

        

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章