Skip to content

An SSL proxy that decrypts and inspects client traffic to monitor, control, or enforce security policies.

Notifications You must be signed in to change notification settings

HCMUS-HQHuy/PROXY-SERVER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proxy Server Project

Menu Screenshot
SSL Proxy Server

Overview

This project implements a Proxy Server designed to handle client requests and forward them to the intended remote server. The primary objective of this application is to provide an intermediary server that facilitates secure communication and data exchange using SSL/TLS protocols.

Features

  • SSL/TLS Support: Secure communication between the proxy, client, and remote server.
  • Request Forwarding: Forward HTTP/HTTPS requests and return responses without modifying data.
  • Multi-threading: Efficient handling of multiple client connections simultaneously.
  • Logging: Track requests, connections, and errors with detailed logs.
  • Configuration Management: Customize server settings through configuration files.
  • UI: A basic UI that help peole control and config easily.

Project Structure

ProxyServer
├── ASSETS
│   └── [Logo]                    # Application icon
├── CERTIFICATE
│   └── [Certificates files]      # Certificates for SSL/TLS encryption
├── CONFIG
│   └── [Configuration files]     # Custom server settings
├── OUTPUT
│   └── [Inno Setup Installer]    # Setup files generated by Inno Setup
├── HEADER
│   └── [Header files]            # Header files in the project.
├── SRC
│   └── [Source code files]       # Source code in the project.
├── Makefile                      # Makefile
└── README.md                     # Project documentation

Requirements

  • Operating System: Windows (x64)
  • Dependencies:
    • OpenSSL
    • GCC compiler (MinGW from MSYS2 recommended)
    • Inno Setup (for packaging the application)

Installation

  1. Download the installer from the Output directory or the provided link.
  2. Run the installer ProxyServerSetup.exe.
  3. Follow the on-screen instructions to complete the installation.

Usage

  1. Launch the application by running demo.exe.
  2. Configure the server settings using files in the CONFIG directory if needed.
  3. Monitor logs to track ERRORS (for development).

Development

Building the Project

  1. Install MinGW (or a compatible GCC compiler).
  2. Clone the repository and navigate to the project directory.
  3. Build the executable:
    make build    # Build project
    make run      # Run code

Creating the Installer

  1. Install Inno Setup.
  2. Use the provided ProxyServerSetup.iss file to generate the installer:
    Open Inno Setup > Load ProxyServerSetup.iss > Compile
    

Troubleshooting

  • Icons Not Displayed in Shortcuts: Ensure the .ico file is in the correct directory and specified in the installer script.
  • SSL Errors: Verify that the certificate files in the CERTIFICATE directory are valid and correctly configured.
  • Connection Issues: Check firewall or network settings that may block the proxy server.

Contributors

  • Huỳnh Quốc Huy
  • Đỗ Trọng Huy
  • Hoàng Ngọc Phú

Acknowledgments

Special thanks to the developers of OpenSSL and the MinGW community for providing robust tools and libraries.

About

An SSL proxy that decrypts and inspects client traffic to monitor, control, or enforce security policies.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •