|
@@ -1,93 +1,43 @@
|
|
|
-
|
|
|
# Cashu Mint Management RPC
|
|
|
|
|
|
-This crate is a grpc client and server to control and manage a cdk mint. This crate exposes a server complnate that can be imported as library compontant, see its usage in `cdk-mintd`. The client can be used as a cli by running `cargo r --bin cdk-mint-cli`.
|
|
|
-
|
|
|
-The server can be run with or without certificate authentication. For running with authentication follow the below steps to create certificates.
|
|
|
-
|
|
|
-
|
|
|
-# gRPC TLS Certificate Generation Guide
|
|
|
+This crate is a gRPC client and server to control and manage a CDK mint. This crate exposes a server component that can be imported as a library component, see its usage in `cdk-mintd`. The client can be used as a CLI by running `cargo r --bin cdk-mint-cli`.
|
|
|
|
|
|
-This guide explains how to generate the necessary TLS certificates for securing gRPC communication between client and server.
|
|
|
+The server can be run with or without certificate authentication. For running with authentication, see the [Certificate Generation Guide](./CERTIFICATES.md) for instructions on creating the necessary certificates using the included `generate_certs.sh` script.
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
-The script generates the following certificates and keys:
|
|
|
-- Certificate Authority (CA) certificate and key
|
|
|
-- Server certificate and key
|
|
|
-- Client certificate and key
|
|
|
+The cdk-mint-rpc crate provides:
|
|
|
|
|
|
-All certificates are generated in PEM format, which is commonly used in Unix/Linux systems.
|
|
|
+1. A gRPC server for managing Cashu mints
|
|
|
+2. A CLI client (`cdk-mint-cli`) for interacting with the gRPC server
|
|
|
|
|
|
-## Prerequisites
|
|
|
+This allows mint operators to manage their Cashu mint instances remotely through a secure gRPC interface.
|
|
|
|
|
|
-- OpenSSL installed on your system
|
|
|
-- Bash shell environment
|
|
|
+## Features
|
|
|
|
|
|
-## Generated Files
|
|
|
-
|
|
|
-The script will create the following files:
|
|
|
-- `ca.key` - Certificate Authority private key
|
|
|
-- `ca.pem` - Certificate Authority certificate
|
|
|
-- `server.key` - Server private key
|
|
|
-- `server.pem` - Server certificate
|
|
|
-- `client.key` - Client private key
|
|
|
-- `client.pem` - Client certificate
|
|
|
+- Remote mint management via gRPC
|
|
|
+- Secure authentication
|
|
|
+- Command-line interface for common mint operations
|
|
|
+- Integration with other CDK components
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
-1. Save the script as `generate_certs.sh`
|
|
|
-2. Make it executable:
|
|
|
- ```bash
|
|
|
- chmod +x generate_certs.sh
|
|
|
- ```
|
|
|
-3. Run the script:
|
|
|
- ```bash
|
|
|
- ./generate_certs.sh
|
|
|
- ```
|
|
|
-
|
|
|
-## Certificate Details
|
|
|
-
|
|
|
-### Certificate Authority (CA)
|
|
|
-- 4096-bit RSA key
|
|
|
-- Valid for 365 days
|
|
|
-- Used to sign both server and client certificates
|
|
|
+### CLI Client
|
|
|
|
|
|
-### Server Certificate
|
|
|
-- 4096-bit RSA key
|
|
|
-- Valid for 365 days
|
|
|
-- Includes Subject Alternative Names (SAN):
|
|
|
- - DNS: localhost
|
|
|
- - DNS: my-server
|
|
|
- - IP: 127.0.0.1
|
|
|
+The `cdk-mint-cli` provides a command-line interface for interacting with the mint:
|
|
|
|
|
|
-### Client Certificate
|
|
|
-- 4096-bit RSA key
|
|
|
-- Valid for 365 days
|
|
|
-- Used for client authentication
|
|
|
-
|
|
|
-
|
|
|
-## Verification
|
|
|
-
|
|
|
-The script includes verification steps to ensure the certificates are properly generated:
|
|
|
```bash
|
|
|
-# Verify server certificate
|
|
|
-openssl verify -CAfile ca.pem server.pem
|
|
|
-
|
|
|
-# Verify client certificate
|
|
|
-openssl verify -CAfile ca.pem client.pem
|
|
|
+# Using cargo to run the CLI with a specific address
|
|
|
+cargo r --bin cdk-mint-cli -- --addr https://127.0.0.1:8086 get-info
|
|
|
```
|
|
|
|
|
|
-## Security Notes
|
|
|
+## Related Crates
|
|
|
+
|
|
|
+This crate is part of the Cashu Development Kit (CDK) ecosystem:
|
|
|
+
|
|
|
+- [cdk](../cdk/): Core Cashu protocol implementation
|
|
|
+- [cdk-mintd](../cdk-mintd/): Cashu Mint Binary
|
|
|
|
|
|
-1. Keep private keys (*.key files) secure and never share them
|
|
|
-2. The CA certificate (ca.pem) needs to be distributed to both client and server
|
|
|
-3. Server needs:
|
|
|
- - server.key
|
|
|
- - server.pem
|
|
|
- - ca.pem
|
|
|
-4. Client needs:
|
|
|
- - client.key
|
|
|
- - client.pem
|
|
|
- - ca.pem
|
|
|
+## License
|
|
|
|
|
|
+MIT License
|