瀏覽標籤:

Apache

設定Apache以用戶憑證(Client CA)的方式進行訪客驗證

在使用Apache管理網頁服務時,有時會遇到希望可以設定某些網頁服務是只有經過授權的人才能存取

常見的做法是可以利用Apache跳出提示輸入帳密提示框後,成功登入者才能進行下一步訪問

今天我們要來講講第二種做法:

發憑證給授權的使用者,並且在每次訪客訪問網站時驗證訪客提交的憑證是否為我方發行無變造過的

確認無誤才準放行進行下一步訪問,如果沒有憑證或憑證沒有通過驗證者都一律拒於門外

 
使用用戶憑證(Client CA)的方式進行訪客驗證就好像使用SSH Key登入SSH的概念,不用再多背一組帳密

而且因為是使用憑證,他的安全性遠高於帳密

想想假設今天一個網站使用帳密進行驗證,積極一點的駭客會使用暴力破解或字典檔想設法去猜中帳密

但如果今天使用憑證進行驗證,是不是就算再積極也無從下手了呢

 

步驟

要設定Apache以用戶憑證(Client CA)的方式進行訪客驗證有三個步驟要做:

  • 產生用戶憑證檔與憑證私鑰
  • 轉換成pfx格式
  • 修改Apache的設定檔強制驗證訪客提供的憑證

以下我就拿自己的phpMyAdmin資料庫後台網頁進行示範,設定只有持有合格的用戶憑證者才能存取 閱讀更多

Docker Compose File (Apache+PHP+MariaDB+phpMyAdmin)

備份一下在自己電腦測試網頁用的Docker Compose

(Apache2 + PHP 7.2 + MariaDB 10 + phpMyAdmin)

version: '3.1'

services:

  mariadb:
    container_name: mariadb10
    image: mariadb
    restart: unless-stopped
    ports:
      - 3006:3006
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=1
    volumes:
      - /Users/AndyWu/Documents/Docker/mysql:/var/lib/mysql
    networks:
      my_network:
        ipv4_address: "192.168.250.2"

  apache2:
    container_name: apache2
    image: mobingi/ubuntu-apache2-php7:7.2
    restart: unless-stopped
    ports:
      - 80:80
    volumes:
      - /Users/AndyWu/Documents/Docker/apache2+php7.2:/var/www/html
    networks:
      my_network:
        ipv4_address: "192.168.250.3"
    depends_on:
      - mariadb

  phpmyadmin:
    container_name: phpmyadmin
    image: phpmyadmin/phpmyadmin
    restart: unless-stopped
    ports:
      - 81:80
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=192.168.250.2
      - PMA_PORTS=3006
    networks:
      my_network:
        ipv4_address: "192.168.250.4"
    depends_on:
      - mariadb

networks:
  my_network:
    driver: bridge
    ipam:
      config:
        - subnet: "192.168.250.0/24"

在Ubuntu上架SVN+Apache與權限設定(mod_authz_svn)

這學期教了svn怎麼使用,其中,老師出了作業要我們架兩個repository:

  • 一個設為公開,所有人都有access的權限,但只能read。
  • 一個設為非公開,必須先登入才能access這個repository,此外,不同帳號登入有不同的權限。

我在權限的地方被折騰了很久,所以一定要筆記一下以免老了忘記Orz...
閱讀更多