Skip to content

Latest commit

 

History

History
177 lines (117 loc) · 5.53 KB

README-zhHant.md

File metadata and controls

177 lines (117 loc) · 5.53 KB

QuickCertS

app version Codecov CodeQL status license

go version python version node version

語言

English 繁體中文 简体中文

介紹

此專案(QuickCertS, QCS)提供開發者快速建立一個憑證伺服器,可為您開發的應用核發憑證(金鑰&簽名)。於您的應用中嵌入公鑰,並同時使用簽名,驗證金鑰是否是由您架設的憑證伺服器核發,達到"產品啟用"的功能。

同時也提供有效期的臨時許可,若您的應用需要"試用期"或是產品基於週期授權而非永久時,可使用相關 API 達成。

技術

架構:

  • 伺服器框架:Gin Web Framework
  • 快取:Redis
  • 資料庫:PostgreSQL

公私鑰儲存規範:PKCS8

簽名:

SHA2 SHA3
SHA-256 SHA3-256
SHA-384 SHA3-384
SHA-512 SHA3-512

使用 RSA-PSS 填充自動計算的長度

配置

  • 您可於 path_to_qcs/configs/allowlist.toml 中設置您要配置給管理員的名稱以及通行令牌,用於管理員用 API。

  • 您可於 path_to_qcs/configs/cache.toml 中將預設的配置更改為您期望的配置。

  • 您可於 path_to_qcs/configs/database.toml 中將預設的配置更改為您期望的配置,但若於之後使用 docker compose 啟動伺服器,須要同樣更改以下 docker compose 的相關配置。

    services:
    qcs-db: # <- container name 對應於 host name
      build:
        context: .
        dockerfile: Dockerfile.database
      networks:
        - qcs_subnet
      ports:
        - "33332:5432"
      environment:
        POSTGRES_USER: quickcerts
        POSTGRES_PASSWORD: password # <- 建議更改資料庫密碼
        POSTGRES_DB: quickcerts
  • path_to_qcs/configs/server.toml 包含全部伺服器的相關設定,建議正式執行前完成配置。 ※請將以下的設定改為 false

    LOG_TEST_MODE = false
  • path_to_qcs/init.sql 中可以替資料庫設定時區,建議使用與本地或雲端相同的時區,避免混亂。

  • 如果您了解如何使用 Redis,可於 path_to_qcs/redis.conf 更動 Redis 的額外設定。

建置

  • Docker

使用 docker 以及 docker compose 快速啟動伺服器

確保您已在您的作業系統上安裝 docker 以及 docker compose 於專案根目錄下輸入:

docker compose up --build -d

即可完成架設,若未更改配置設定,預設啟動埠號 :33333

  • 執行檔

使用 Release 中提供的執行檔

  • 建立一個 PostgreSQL 資料庫,並將相關配置設置到 path_to_qcs/configs/database.toml

  • 建立一个 Redis 数据库,并将相关配置设置到 path_to_qcs/configs/cache.toml,额外设定可于 path_to_qcs/redis.conf 进行配置。

  • 至 Release 根據您的作業系統選擇要下載的壓縮檔,於專案根目錄執行 ./init/Init(.exe)

  • 於專案根目錄執行 server(.exe)

即可完成架設,若未更改配置設定,預設啟動埠號 :33333

  • 原始碼

由原始碼編譯後執行或直接執行

請使用 Golang >= 1.21.1 編譯後執行或直接執行:

go run ./init/Init.go
go run ./server.go

即可完成架設,若未更改配置設定,預設啟動埠號 :33333

API

啟用伺服器後可至以下網址查閱:

預設:http://localhost:33333/swagger/index.html

若有使用 TLS 或不同的埠號請自行切換網址。

SDK

SDK & 範例

您可於 path_to_qcs/sdk 查看 SDK 以及使用範例,目前支援 Python, TypeScript, Golang。

  • Python

path_to_qcs/sdk/python 開啟終端,輸入:

# Here uses pyenv + virtualenv + pip,
# you can also use your preferred environment/package management tool.
virtualenv -p "path_to_python" venv
./venv/Script/activate
pip install -r "./requirements.txt"
cd ./example

python ./usage.py # SDK Usage
python ./verify.py # Verify RSA signature.
  • TypeScript

path_to_qcs/sdk/typescript 開啟終端,輸入:

npm i

npm run start # SDK Usage
npm run verify # Verify RSA signature.
  • Golang

path_to_qcs/sdk/go 開啟終端,輸入:

cd ./example

go run usage.go # SDK Usage.
# If you want to run the verification test case, you can call VerifyExample().