Skip to content

Commit

Permalink
refactor!: refactor and update script
Browse files Browse the repository at this point in the history
  • Loading branch information
erfjab committed Sep 10, 2024
1 parent c1ec033 commit 7151163
Show file tree
Hide file tree
Showing 3 changed files with 236 additions and 558 deletions.
154 changes: 43 additions & 111 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,130 +1,62 @@
https://github.com/erfjab/ESSL/assets/143827987/2e9873a6-1ea8-4777-a4f9-a18cd58a0a29
# ESSL (Easy SSL)

<p align="center">
<a href="./README.md">
English
</a>
|
<a href="./README_fa.md">
فارسی
</a>
</p>
ESSL is a script to quickly obtain SSL certificates for your domains. It supports both single and multiple domains, and it automatically uses either acme.sh or certbot to generate certificates.

# What is ESSL?
ESSL (Easy SSL) is a user-friendly script designed to streamline the process of obtaining SSL certificates through various methods. It simplifies the procedure, sparing users from confusing and unnecessary commands. just copy and paste one line so that everything is done automatically.
### Features

### Future's:
- Single domain ssl (sub.domain.com)
- Wildcard domain ssl (*.domain.com)
- Multi-domain ssl (sub1.doamin1.com sub2.domain2.com)
- Renewal ssl (update)
- Revoke ssl (delete)
- Automatic/Custom patch (support all panel's directory)
- **Single Domain**: e.g., `sub.domain.com`
- **Multiple Domains**: e.g., `sub1.domain1.com sub2.domain2.com`
- **Auto Configuration**: Uses acme.sh or certbot
- **Predefined Panel Paths**: Supports `marzban`, `x-ui`, `3x-ui`, `s-ui`, `hiddify`
- **Custom Paths**: Specify your own directory

### Support:
- Acme
- Certbot
- Cloudflare api
### How to Use

> [!IMPORTANT]
> The script automatically tests both acme and certbot to generate the certificate.
1. **Download and Install the Script:**
```bash
sudo bash -c "$(curl -sL https://raw.githubusercontent.com/erfjab/ESSL/master/essl.sh) --install"
```

## How to Use?
2. **Run the Script:**
```bash
essl <email> <domain1 domain2 ...> <destination>
```
- `<email>`: Your email address for notifications.
- `<domain1 domain2 ...>`: List of domains to secure.
- `<destination>`: Path or predefined panel directory (e.g., `marzban`, `x-ui`).

just copy/paste and enjoy :
### Examples

```bash
sudo bash -c "$(curl -sL https://github.com/erfjab/ESSL/raw/main/essl.sh)"
```
<details>
- **Single Domain:**
```bash
essl [email protected] example.com /etc/ssl/certs
```

<summary>Single Domain</summary>
- **Multiple Domains:**
```bash
essl [email protected] domain1.com domain2.com /custom/path
```

1. acme & certbot
In single domain after set DNS you only need :
- `domain` (e.g: sub.doamin.com)
- `email`

After receiving ssl, it will show you three path, the first one is for the desired path, the second one is for the border panel path and the third one is for the path of other panels. You received a certificate so easily and easily.
2. cloudflare api
> Cloudflare api only generates wildcard certificates.
- **Predefined Panel Path:**
```bash
essl [email protected] example.com marzban
```

With cloudflare api you don't need to set dns. well:
- `domain` (e.g: domain.com)
- `cloudflare account email`
- `cloudflare global api key`

how to find cloudflare global api key : [Link](https://coda.io/@vishesh-jain/api-documentation/cloudflare-global-api-key-15)

After receiving ssl, it will show you three path, the first one is for the desired path, the second one is for the border panel path and the third one is for the path of other panels. You received a certificate so easily and easily.
### Additional Commands

</details>

- **Upgrade the Script:**
```bash
essl --upgrade
```

<details>

<summary>Wildcard Domain</summary>

1. acme & certbot

In wildcard domain after set DNS you only need :
- `domain` (e.g: domain.com)
- `email`

Now it gives you a name and text value, which asks you to set them in text dns format, after a few moments, click set enter.

After receiving ssl, it will show you three path, the first one is for the desired path, the second one is for the border panel path and the third one is for the path of other panels. You received a certificate so easily and easily.
2. cloudflare api

> Cloudflare api only generates wildcard certificates.

With cloudflare api you don't need to set dns. well:
- `domain` (e.g: domain.com)
- `cloudflare account email`
- `cloudflare global api key`

how to find cloudflare global api key : [Link](https://coda.io/@vishesh-jain/api-documentation/cloudflare-global-api-key-15)
After receiving ssl, it will show you three path, the first one is for the desired path, the second one is for the border panel path and the third one is for the path of other panels. You received a certificate so easily and easily.

</details>


<details>

<summary>Multi-Domain</summary>

In Multi domain after set DNS you only need :
- `domain's` (in a line with a space e.g: sub1.domain1.com sub2.domain2.com...)
- `email`

After receiving ssl, it will show you three path, the first one is for the desired path, the second one is for the border panel path and the third one is for the path of other panels. You received a certificate so easily and easily.
</details>

<details>

<summary>Renewal</summary>

In renewal you only need :
- `domain` (e.g: *.domain.com (wildcard) sub.domain.com (single))

If it needs to be extended, it will be extended, otherwise it will say that it is not needed yet.
</details>


<details>

<summary>Revoke</summary>

In Revoke fi you only need :
- `domain` (e.g: *.domain.com (wildcard) sub.domain.com (single))

If your domain is in the domain list, it will revoked.
</details>
- **Help:**
```bash
essl --help
```

## Support project

**We don't need financial support, only Star (⭐) is enough, thank you.**

[![Stargazers over time](https://starchart.cc/erfjab/essl.svg?variant=adaptive)](https://starchart.cc/erfjab/essl)


[![Stargazers over time](https://starchart.cc/erfjab/essl.svg?variant=adaptive)](https://starchart.cc/erfjab/essl)
131 changes: 0 additions & 131 deletions README_fa.md

This file was deleted.

Loading

0 comments on commit 7151163

Please sign in to comment.