mirror of
https://github.com/pcvolkmer/mv64e-rest-to-kafka-gateway
synced 2025-09-13 09:12:51 +00:00
feat: ssl connections to kafka brokers
This commit is contained in:
@@ -21,7 +21,7 @@ serde_json = "1.0"
|
|||||||
uuid = { version = "1.17", features = ["v4"] }
|
uuid = { version = "1.17", features = ["v4"] }
|
||||||
base64 = "0.22"
|
base64 = "0.22"
|
||||||
bcrypt = "0.17"
|
bcrypt = "0.17"
|
||||||
rdkafka = { version = "0.38.0", features = ["cmake-build", "libz-static"] }
|
rdkafka = { version = "0.38.0", features = ["cmake-build", "libz-static", "ssl-vendored"] }
|
||||||
async-trait = "0.1"
|
async-trait = "0.1"
|
||||||
# DTOs
|
# DTOs
|
||||||
mv64e-mtb-dto = { git = "https://github.com/dnpm-dip/mv64e-mtb-dto-rs", branch = "master" }
|
mv64e-mtb-dto = { git = "https://github.com/dnpm-dip/mv64e-mtb-dto-rs", branch = "master" }
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
FROM rust:alpine AS back-stage
|
FROM rust:alpine AS back-stage
|
||||||
|
|
||||||
RUN apk update
|
RUN apk update
|
||||||
RUN apk add cmake make musl-dev g++
|
RUN apk add cmake make musl-dev g++ perl
|
||||||
|
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
COPY Cargo.toml ./
|
COPY Cargo.toml ./
|
||||||
|
12
README.md
12
README.md
@@ -25,6 +25,12 @@ Options:
|
|||||||
bcrypt hashed Security Token [env: APP_SECURITY_TOKEN=]
|
bcrypt hashed Security Token [env: APP_SECURITY_TOKEN=]
|
||||||
--listen <LISTEN>
|
--listen <LISTEN>
|
||||||
Address and port for HTTP requests [env: APP_LISTEN=] [default: [::]:3000]
|
Address and port for HTTP requests [env: APP_LISTEN=] [default: [::]:3000]
|
||||||
|
--ssl-ca-file <SSL_CA_FILE>
|
||||||
|
CA file for SSL connection to Kafka [env: APP_SSL_CA_FILE=]
|
||||||
|
--ssl-cert-file <SSL_CERT_FILE>
|
||||||
|
Certificate file for SSL connection to Kafka [env: APP_SSL_CERT_FILE=]
|
||||||
|
--ssl-key-file <SSL_KEY_FILE>
|
||||||
|
Key file for SSL connection to Kafka [env: APP_SSL_KEY_FILE=]
|
||||||
```
|
```
|
||||||
|
|
||||||
Die Anwendung lässt sich auch mit Umgebungsvariablen konfigurieren.
|
Die Anwendung lässt sich auch mit Umgebungsvariablen konfigurieren.
|
||||||
@@ -35,6 +41,12 @@ Die Anwendung lässt sich auch mit Umgebungsvariablen konfigurieren.
|
|||||||
* `APP_LISTEN`: Adresse und Port für eingehende HTTP-Requests. Standardwert: `[::]:3000` - Port `3000` auf allen
|
* `APP_LISTEN`: Adresse und Port für eingehende HTTP-Requests. Standardwert: `[::]:3000` - Port `3000` auf allen
|
||||||
Adressen (IPv4 und IPv6)
|
Adressen (IPv4 und IPv6)
|
||||||
|
|
||||||
|
Optionale Umgebungsvariablen - wenn angegeben wird eine SSL-Verbindung zu Kafka aufgebaut.
|
||||||
|
|
||||||
|
* `SSL_CA_FILE`: CA für SSL-Verbindungen
|
||||||
|
* `SSL_CA_FILE`: SSL Certificate Datei
|
||||||
|
* `SSL_CA_FILE`: SSL Key Datei
|
||||||
|
|
||||||
Die Angabe eines Tokens ist verpflichtend und kann entweder über den Parameter `--token` erfolgen, oder über die
|
Die Angabe eines Tokens ist verpflichtend und kann entweder über den Parameter `--token` erfolgen, oder über die
|
||||||
Umgebungsvariable `APP_SECURITY_TOKEN`.
|
Umgebungsvariable `APP_SECURITY_TOKEN`.
|
||||||
|
|
||||||
|
@@ -9,10 +9,107 @@ services:
|
|||||||
ALLOW_PLAINTEXT_LISTENER: "yes"
|
ALLOW_PLAINTEXT_LISTENER: "yes"
|
||||||
KAFKA_NODE_ID: "0"
|
KAFKA_NODE_ID: "0"
|
||||||
KAFKA_PROCESS_ROLES: "controller,broker"
|
KAFKA_PROCESS_ROLES: "controller,broker"
|
||||||
|
# Without SSL
|
||||||
KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
|
KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
|
||||||
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094
|
||||||
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
|
||||||
|
# # Using SSL
|
||||||
|
# KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
|
||||||
|
# KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094
|
||||||
|
# KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:SSL,PLAINTEXT:PLAINTEXT
|
||||||
|
# KAFKA_SSL_KEYSTORE_TYPE: PEM
|
||||||
|
# KAFKA_SSL_KEYSTORE_CERTIFICATE_CHAIN: -----BEGIN CERTIFICATE-----
|
||||||
|
# MIIDCzCCAfOgAwIBAgIUaXNh4PahaKeLUaab2rUPSVESx28wDQYJKoZIhvcNAQEL
|
||||||
|
# BQAwFTETMBEGA1UEAwwKRXhhbXBsZSBDQTAeFw0yNTA4MjExODEyMTFaFw0zNTA4
|
||||||
|
# MTkxODEyMTFaMBUxEzARBgNVBAMMCkV4YW1wbGUgQ0EwggEiMA0GCSqGSIb3DQEB
|
||||||
|
# AQUAA4IBDwAwggEKAoIBAQCsqalqVOLFglVbX9oSHU91ebyL1kPyb/2N90UGQIcD
|
||||||
|
# UAjzKxxysId1Vdvtbbwgli6UgfPwlzFP2Wlw51h496yL4QU/9tNV956UJ1RoS/fG
|
||||||
|
# qBAEHctqavfMI27UQmIzw4pGMkGzEQxRMc6a9pdabBhbMMTJsjtmOv2YMYHj1HHK
|
||||||
|
# Dr7wTBTt2l0eRyCR0kZ8XGIMWhYowPa4EMpC7+4e5Nf/7LSJZWLLy9jXPpazsjkJ
|
||||||
|
# jEmDNlFfx2tZiq0Wz2Xj1pZSDLbcuIX4IHcLfMvagibfrCMX/h6+WuW42sWPRuBW
|
||||||
|
# wB6cHGlXs+K/gBBWxtD7sOTacO5hbHFsfaJOhSEIGoIpAgMBAAGjUzBRMB0GA1Ud
|
||||||
|
# DgQWBBT2S/C2++ECY+CSuN5KKql0umfbTDAfBgNVHSMEGDAWgBT2S/C2++ECY+CS
|
||||||
|
# uN5KKql0umfbTDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBj
|
||||||
|
# H4DdwqrOHg7sVsqiwDsZfTharpUDCYeG5XhrJQlnA9eKwyofTb929W/fjOwBdDtg
|
||||||
|
# 9THT/omR0lA8/UyHtezMT6nMsCn4HG2mXvx6ghgvA3jrFTEY7R80dHkboLMTV3u4
|
||||||
|
# RYgC9S3BJPcbJYpM0cXzkp2T0F4FxWZlfqefuedHuX3zcCxpgVD56qQb2a131TX7
|
||||||
|
# O3UDJfVg8a65IFtehndqILgLVrf7w6+pbmDAlCg5RKrt2USEYyZXYdyTryJbdtn4
|
||||||
|
# BCLp0avYtSYVUGwgH0oUCpkjQRwMg1003TTz8SNnmE7mAXHYljyYejnjL8vBHfch
|
||||||
|
# 8tTDVXQn08BT9H3jZTnF
|
||||||
|
# -----END CERTIFICATE-----
|
||||||
|
# -----BEGIN CERTIFICATE-----
|
||||||
|
# MIIC+TCCAeGgAwIBAgIUUoCwz8GS6xQ3mmI7RUUYSNPIOi4wDQYJKoZIhvcNAQEL
|
||||||
|
# BQAwFTETMBEGA1UEAwwKRXhhbXBsZSBDQTAeFw0yNTA4MjExODE0NDhaFw0zNTA4
|
||||||
|
# MTkxODE0NDhaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEB
|
||||||
|
# BQADggEPADCCAQoCggEBAL9PW99MhhBwdEmTHyZgfnhfTrxZPrNU6z1UdV8b82Lk
|
||||||
|
# 3p75o8eCKa9iOd7DDQlo75hQBhhX0+Xc3mucrstx5p8TYFMbypif8ojWh3LM++P8
|
||||||
|
# tz3ezQZlq86ycyKpm8dqlA03b227tFDfiYTev2eD2HN40BU7yDAYhhqd/QW8+MV2
|
||||||
|
# jkcRGv5cE21GZxWmPUpkVN+bNoBC8H90WmkST90LfeYF+wZnlsAJZH6AQzR1GnGD
|
||||||
|
# ICE5evMhC78hvRnpgeA310SyxssZEigkePL5lTZOBPY2IuzBqL05agyVTiVq4Xd6
|
||||||
|
# y3xOqXoxxOhZu06yd3nymorqeTgbF1fW8wQF0u3KsFECAwEAAaNCMEAwHQYDVR0O
|
||||||
|
# BBYEFHk9jMWRAAt2YsBSxUcOQVoWayoHMB8GA1UdIwQYMBaAFPZL8Lb74QJj4JK4
|
||||||
|
# 3koqqXS6Z9tMMA0GCSqGSIb3DQEBCwUAA4IBAQBqabAA9INONDaLHqs9i9YQHm/g
|
||||||
|
# AnB7xRl/RFbERKKCTSMZUYM8oEaaH0W2ENoPMc/7xOB/R8a7Rm62PTr6syxwhZrY
|
||||||
|
# 5NtGKJOD+rh90/5l83tulf93KqOJtGkiv6NBDvCNrITcA+UKRk/z4GcFi2YjWAl4
|
||||||
|
# wvY44lzTasMKSpjUQ5N0VNANcW3nVuEgPQ8rrr0NOK/5j4guPjsXDsixa47gqblA
|
||||||
|
# 5xGfBKeVmEXdPbzawZfP4hPIw7DpX2m8Y0erswF1ZxkIV73V3TDsFSLcqSKSzZr6
|
||||||
|
# mtj8COlV9Us7zqaJbV5eOl7GN1T9orZJwZmX1Z46gCkkSLYDP/dqtl2j9JgN
|
||||||
|
# -----END CERTIFICATE-----
|
||||||
|
# KAFKA_SSL_KEYSTORE_KEY: -----BEGIN PRIVATE KEY-----
|
||||||
|
# MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/T1vfTIYQcHRJ
|
||||||
|
# kx8mYH54X068WT6zVOs9VHVfG/Ni5N6e+aPHgimvYjneww0JaO+YUAYYV9Pl3N5r
|
||||||
|
# nK7LceafE2BTG8qYn/KI1odyzPvj/Lc93s0GZavOsnMiqZvHapQNN29tu7RQ34mE
|
||||||
|
# 3r9ng9hzeNAVO8gwGIYanf0FvPjFdo5HERr+XBNtRmcVpj1KZFTfmzaAQvB/dFpp
|
||||||
|
# Ek/dC33mBfsGZ5bACWR+gEM0dRpxgyAhOXrzIQu/Ib0Z6YHgN9dEssbLGRIoJHjy
|
||||||
|
# +ZU2TgT2NiLswai9OWoMlU4lauF3est8Tql6McToWbtOsnd58pqK6nk4GxdX1vME
|
||||||
|
# BdLtyrBRAgMBAAECggEAC1wXfPlqxoQe65WAVoOJTvV90+JKvlRPCZu/wm+C8r7b
|
||||||
|
# Vz5Ekt6wQflHrWoQlpv0CivKSNzCONZ2IJazrGHti0mXwSeXzptEyApRDaiNVnrV
|
||||||
|
# mKdnrjcQThw7iPXgSaWS9/vwMmhgayLy5ABkBi4GhsjINlKP7wctw1vZP+N6NCNd
|
||||||
|
# Ql3taStvDKmG0SfJHF6/2o/XBpof3IJEL7ghbzyTTbWWaO34J1mJ8A+AmjGhj9GE
|
||||||
|
# Dp3XuOrO9W7MVd1nfZDtGBS8qf80AwROyodZZRma9vZuWJZ5aQFi2CnUEtU1T+Uv
|
||||||
|
# tW+F6tg2FOMr8M0Fb79wGIDwSF8u/QcTvwhEzZAfiQKBgQDioOofnE1oB1DOMnqZ
|
||||||
|
# SOFjs+vsirvS6G3lo27+HkE3TgvCHR4sk1305AiXtjmPu8iaUCo9qn18MtduY2RS
|
||||||
|
# CcKMOG/FxhmDyP5I29DhJRhvERIpJd0kcSDQOgtaoVPC1XzIlyTqte6nGX9kAnA/
|
||||||
|
# x/OOXrZ0hjhMNDcZzf2NasPYJQKBgQDYGqTobkVBk+eekNWklnTh41/649rUIgTu
|
||||||
|
# JStArtY2hgaEInYcGa2e7cEj7nIHA0iGy3EJ2yvwoUIyxtoXVcGohu2IrzlhS33T
|
||||||
|
# R4jA7nE2/yHZrEMEJovuSU0eMw7rgvEtL79Q0RToYnTY1EU6X/BBoFfiiEeNMHKz
|
||||||
|
# zjDOOQ6ZvQKBgGCWChIc0FSkwYiPtPZ9PCn89XCjk/cIPkYfiF9fT5Ydeh9pv4Fp
|
||||||
|
# 8SI8yXi3HgMnGhDCV65eagqztGMEky3voO2X4/MbQaaL0+wDWxuJbsdvNBk7XOt6
|
||||||
|
# F20HP+2JUiR4Ti1DVWV+0k5/LG7YJzTXp/KmZQZ2aan4mv8xbn2F4h/NAoGAI4ou
|
||||||
|
# OLN53FEQtHkpSYoc6tFUBZTXdi+qE+g09sxKGmlsROrN9c0bSpnbO6eJRTH7CYAH
|
||||||
|
# tRFAZrB+jI87ar8FvEuEYQhALYoWxVpsWR5drCfFT2EPHG2icavIbQEEoSLFuyKx
|
||||||
|
# Gf9oqtcWVFqEkBcbEg/mpDC5Y7TmCEAOsrubdRkCgYEAl7B+EzIdG0rabGoti09q
|
||||||
|
# QXfyiTjR7nQYkhpLxMCeNlCpQ8Y15XSa8bm1UIGYqj/ZBpeBNhrj64IHoub5Vd43
|
||||||
|
# tzbb8yNgoLUd16TU1VvyccCMGQVPIF8RkDsAtEawV2eoXbHAstN99xbC8jsLNZRQ
|
||||||
|
# fcfgTiQaXRJmlVx6jfbfZd4=
|
||||||
|
# -----END PRIVATE KEY-----
|
||||||
|
# #KAFKA_SSL_KEYSTORE_CREDENTIALS: example
|
||||||
|
# KAFKA_SSL_KEY_CREDENTIALS: example
|
||||||
|
# KAFKA_SSL_TRUSTSTORE_TYPE: PEM
|
||||||
|
# KAFKA_SSL_TRUSTSTORE_CERTIFICATES: -----BEGIN CERTIFICATE-----
|
||||||
|
# MIIDCzCCAfOgAwIBAgIUaXNh4PahaKeLUaab2rUPSVESx28wDQYJKoZIhvcNAQEL
|
||||||
|
# BQAwFTETMBEGA1UEAwwKRXhhbXBsZSBDQTAeFw0yNTA4MjExODEyMTFaFw0zNTA4
|
||||||
|
# MTkxODEyMTFaMBUxEzARBgNVBAMMCkV4YW1wbGUgQ0EwggEiMA0GCSqGSIb3DQEB
|
||||||
|
# AQUAA4IBDwAwggEKAoIBAQCsqalqVOLFglVbX9oSHU91ebyL1kPyb/2N90UGQIcD
|
||||||
|
# UAjzKxxysId1Vdvtbbwgli6UgfPwlzFP2Wlw51h496yL4QU/9tNV956UJ1RoS/fG
|
||||||
|
# qBAEHctqavfMI27UQmIzw4pGMkGzEQxRMc6a9pdabBhbMMTJsjtmOv2YMYHj1HHK
|
||||||
|
# Dr7wTBTt2l0eRyCR0kZ8XGIMWhYowPa4EMpC7+4e5Nf/7LSJZWLLy9jXPpazsjkJ
|
||||||
|
# jEmDNlFfx2tZiq0Wz2Xj1pZSDLbcuIX4IHcLfMvagibfrCMX/h6+WuW42sWPRuBW
|
||||||
|
# wB6cHGlXs+K/gBBWxtD7sOTacO5hbHFsfaJOhSEIGoIpAgMBAAGjUzBRMB0GA1Ud
|
||||||
|
# DgQWBBT2S/C2++ECY+CSuN5KKql0umfbTDAfBgNVHSMEGDAWgBT2S/C2++ECY+CS
|
||||||
|
# uN5KKql0umfbTDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBj
|
||||||
|
# H4DdwqrOHg7sVsqiwDsZfTharpUDCYeG5XhrJQlnA9eKwyofTb929W/fjOwBdDtg
|
||||||
|
# 9THT/omR0lA8/UyHtezMT6nMsCn4HG2mXvx6ghgvA3jrFTEY7R80dHkboLMTV3u4
|
||||||
|
# RYgC9S3BJPcbJYpM0cXzkp2T0F4FxWZlfqefuedHuX3zcCxpgVD56qQb2a131TX7
|
||||||
|
# O3UDJfVg8a65IFtehndqILgLVrf7w6+pbmDAlCg5RKrt2USEYyZXYdyTryJbdtn4
|
||||||
|
# BCLp0avYtSYVUGwgH0oUCpkjQRwMg1003TTz8SNnmE7mAXHYljyYejnjL8vBHfch
|
||||||
|
# 8tTDVXQn08BT9H3jZTnF
|
||||||
|
# -----END CERTIFICATE-----
|
||||||
|
# KAFKA_SSL_CLIENT_AUTH: none
|
||||||
|
# ###
|
||||||
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||||
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@kafka:9093
|
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@kafka:9093
|
||||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
|
|
||||||
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
|
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
|
||||||
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
|
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
|
||||||
|
volumes:
|
||||||
|
- "${PWD}/ssl-dev-fixture/secrets:/etc/kafka/secrets"
|
18
src/cli.rs
18
src/cli.rs
@@ -34,4 +34,22 @@ pub struct Cli {
|
|||||||
help = "Address and port for HTTP requests"
|
help = "Address and port for HTTP requests"
|
||||||
)]
|
)]
|
||||||
pub listen: String,
|
pub listen: String,
|
||||||
|
#[arg(
|
||||||
|
long,
|
||||||
|
env = "APP_SSL_CA_FILE",
|
||||||
|
help = "CA file for SSL connection to Kafka"
|
||||||
|
)]
|
||||||
|
pub ssl_ca_file: Option<String>,
|
||||||
|
#[arg(
|
||||||
|
long,
|
||||||
|
env = "APP_SSL_CERT_FILE",
|
||||||
|
help = "Certificate file for SSL connection to Kafka"
|
||||||
|
)]
|
||||||
|
pub ssl_cert_file: Option<String>,
|
||||||
|
#[arg(
|
||||||
|
long,
|
||||||
|
env = "APP_SSL_KEY_FILE",
|
||||||
|
help = "Key file for SSL connection to Kafka"
|
||||||
|
)]
|
||||||
|
pub ssl_key_file: Option<String>,
|
||||||
}
|
}
|
||||||
|
36
src/main.rs
36
src/main.rs
@@ -73,11 +73,34 @@ async fn main() -> Result<(), ()> {
|
|||||||
.init();
|
.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
let producer = ClientConfig::new()
|
let producer = if CONFIG.ssl_cert_file.is_some() || CONFIG.ssl_key_file.is_some() {
|
||||||
.set("bootstrap.servers", &CONFIG.bootstrap_server)
|
// Use SSL
|
||||||
.set("message.timeout.ms", "5000")
|
ClientConfig::new()
|
||||||
.create::<FutureProducer>()
|
.set("bootstrap.servers", &CONFIG.bootstrap_server)
|
||||||
.map_err(|_| ())?;
|
.set("message.timeout.ms", "5000")
|
||||||
|
.set("security.protocol", "ssl")
|
||||||
|
.set(
|
||||||
|
"ssl.ca.location",
|
||||||
|
CONFIG.ssl_ca_file.clone().unwrap_or_default(),
|
||||||
|
)
|
||||||
|
.set(
|
||||||
|
"ssl.certificate.location",
|
||||||
|
CONFIG.ssl_cert_file.clone().unwrap_or_default(),
|
||||||
|
)
|
||||||
|
.set(
|
||||||
|
"ssl.key.location",
|
||||||
|
CONFIG.ssl_key_file.clone().unwrap_or_default(),
|
||||||
|
)
|
||||||
|
.create::<FutureProducer>()
|
||||||
|
.map_err(|_| ())?
|
||||||
|
} else {
|
||||||
|
// Plain
|
||||||
|
ClientConfig::new()
|
||||||
|
.set("bootstrap.servers", &CONFIG.bootstrap_server)
|
||||||
|
.set("message.timeout.ms", "5000")
|
||||||
|
.create::<FutureProducer>()
|
||||||
|
.map_err(|_| ())?
|
||||||
|
};
|
||||||
|
|
||||||
let sender = Arc::new(DefaultMtbFileSender::new(&CONFIG.topic, producer));
|
let sender = Arc::new(DefaultMtbFileSender::new(&CONFIG.topic, producer));
|
||||||
|
|
||||||
@@ -102,6 +125,9 @@ static CONFIG: LazyLock<Cli> = LazyLock::new(|| Cli {
|
|||||||
// Basic dG9rZW46dmVyeS1zZWNyZXQ=
|
// Basic dG9rZW46dmVyeS1zZWNyZXQ=
|
||||||
token: "$2y$05$LIIFF4Rbi3iRVA4UIqxzPeTJ0NOn/cV2hDnSKFftAMzbEZRa42xSG".to_string(),
|
token: "$2y$05$LIIFF4Rbi3iRVA4UIqxzPeTJ0NOn/cV2hDnSKFftAMzbEZRa42xSG".to_string(),
|
||||||
listen: "0.0.0.0:3000".to_string(),
|
listen: "0.0.0.0:3000".to_string(),
|
||||||
|
ssl_ca_file: None,
|
||||||
|
ssl_cert_file: None,
|
||||||
|
ssl_key_file: None,
|
||||||
});
|
});
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
4
ssl-dev-fixture/README.md
Normal file
4
ssl-dev-fixture/README.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Example/Development SSL files
|
||||||
|
|
||||||
|
This directory contains a self-signed CA, certificate and key file for "localhost" in PEM format.
|
||||||
|
These files should be used for development purposes only!
|
19
ssl-dev-fixture/ca.pem
Normal file
19
ssl-dev-fixture/ca.pem
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDCzCCAfOgAwIBAgIUaXNh4PahaKeLUaab2rUPSVESx28wDQYJKoZIhvcNAQEL
|
||||||
|
BQAwFTETMBEGA1UEAwwKRXhhbXBsZSBDQTAeFw0yNTA4MjExODEyMTFaFw0zNTA4
|
||||||
|
MTkxODEyMTFaMBUxEzARBgNVBAMMCkV4YW1wbGUgQ0EwggEiMA0GCSqGSIb3DQEB
|
||||||
|
AQUAA4IBDwAwggEKAoIBAQCsqalqVOLFglVbX9oSHU91ebyL1kPyb/2N90UGQIcD
|
||||||
|
UAjzKxxysId1Vdvtbbwgli6UgfPwlzFP2Wlw51h496yL4QU/9tNV956UJ1RoS/fG
|
||||||
|
qBAEHctqavfMI27UQmIzw4pGMkGzEQxRMc6a9pdabBhbMMTJsjtmOv2YMYHj1HHK
|
||||||
|
Dr7wTBTt2l0eRyCR0kZ8XGIMWhYowPa4EMpC7+4e5Nf/7LSJZWLLy9jXPpazsjkJ
|
||||||
|
jEmDNlFfx2tZiq0Wz2Xj1pZSDLbcuIX4IHcLfMvagibfrCMX/h6+WuW42sWPRuBW
|
||||||
|
wB6cHGlXs+K/gBBWxtD7sOTacO5hbHFsfaJOhSEIGoIpAgMBAAGjUzBRMB0GA1Ud
|
||||||
|
DgQWBBT2S/C2++ECY+CSuN5KKql0umfbTDAfBgNVHSMEGDAWgBT2S/C2++ECY+CS
|
||||||
|
uN5KKql0umfbTDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBj
|
||||||
|
H4DdwqrOHg7sVsqiwDsZfTharpUDCYeG5XhrJQlnA9eKwyofTb929W/fjOwBdDtg
|
||||||
|
9THT/omR0lA8/UyHtezMT6nMsCn4HG2mXvx6ghgvA3jrFTEY7R80dHkboLMTV3u4
|
||||||
|
RYgC9S3BJPcbJYpM0cXzkp2T0F4FxWZlfqefuedHuX3zcCxpgVD56qQb2a131TX7
|
||||||
|
O3UDJfVg8a65IFtehndqILgLVrf7w6+pbmDAlCg5RKrt2USEYyZXYdyTryJbdtn4
|
||||||
|
BCLp0avYtSYVUGwgH0oUCpkjQRwMg1003TTz8SNnmE7mAXHYljyYejnjL8vBHfch
|
||||||
|
8tTDVXQn08BT9H3jZTnF
|
||||||
|
-----END CERTIFICATE-----
|
18
ssl-dev-fixture/cert.pem
Normal file
18
ssl-dev-fixture/cert.pem
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC+TCCAeGgAwIBAgIUUoCwz8GS6xQ3mmI7RUUYSNPIOi4wDQYJKoZIhvcNAQEL
|
||||||
|
BQAwFTETMBEGA1UEAwwKRXhhbXBsZSBDQTAeFw0yNTA4MjExODE0NDhaFw0zNTA4
|
||||||
|
MTkxODE0NDhaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEB
|
||||||
|
BQADggEPADCCAQoCggEBAL9PW99MhhBwdEmTHyZgfnhfTrxZPrNU6z1UdV8b82Lk
|
||||||
|
3p75o8eCKa9iOd7DDQlo75hQBhhX0+Xc3mucrstx5p8TYFMbypif8ojWh3LM++P8
|
||||||
|
tz3ezQZlq86ycyKpm8dqlA03b227tFDfiYTev2eD2HN40BU7yDAYhhqd/QW8+MV2
|
||||||
|
jkcRGv5cE21GZxWmPUpkVN+bNoBC8H90WmkST90LfeYF+wZnlsAJZH6AQzR1GnGD
|
||||||
|
ICE5evMhC78hvRnpgeA310SyxssZEigkePL5lTZOBPY2IuzBqL05agyVTiVq4Xd6
|
||||||
|
y3xOqXoxxOhZu06yd3nymorqeTgbF1fW8wQF0u3KsFECAwEAAaNCMEAwHQYDVR0O
|
||||||
|
BBYEFHk9jMWRAAt2YsBSxUcOQVoWayoHMB8GA1UdIwQYMBaAFPZL8Lb74QJj4JK4
|
||||||
|
3koqqXS6Z9tMMA0GCSqGSIb3DQEBCwUAA4IBAQBqabAA9INONDaLHqs9i9YQHm/g
|
||||||
|
AnB7xRl/RFbERKKCTSMZUYM8oEaaH0W2ENoPMc/7xOB/R8a7Rm62PTr6syxwhZrY
|
||||||
|
5NtGKJOD+rh90/5l83tulf93KqOJtGkiv6NBDvCNrITcA+UKRk/z4GcFi2YjWAl4
|
||||||
|
wvY44lzTasMKSpjUQ5N0VNANcW3nVuEgPQ8rrr0NOK/5j4guPjsXDsixa47gqblA
|
||||||
|
5xGfBKeVmEXdPbzawZfP4hPIw7DpX2m8Y0erswF1ZxkIV73V3TDsFSLcqSKSzZr6
|
||||||
|
mtj8COlV9Us7zqaJbV5eOl7GN1T9orZJwZmX1Z46gCkkSLYDP/dqtl2j9JgN
|
||||||
|
-----END CERTIFICATE-----
|
28
ssl-dev-fixture/key.pem
Normal file
28
ssl-dev-fixture/key.pem
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/T1vfTIYQcHRJ
|
||||||
|
kx8mYH54X068WT6zVOs9VHVfG/Ni5N6e+aPHgimvYjneww0JaO+YUAYYV9Pl3N5r
|
||||||
|
nK7LceafE2BTG8qYn/KI1odyzPvj/Lc93s0GZavOsnMiqZvHapQNN29tu7RQ34mE
|
||||||
|
3r9ng9hzeNAVO8gwGIYanf0FvPjFdo5HERr+XBNtRmcVpj1KZFTfmzaAQvB/dFpp
|
||||||
|
Ek/dC33mBfsGZ5bACWR+gEM0dRpxgyAhOXrzIQu/Ib0Z6YHgN9dEssbLGRIoJHjy
|
||||||
|
+ZU2TgT2NiLswai9OWoMlU4lauF3est8Tql6McToWbtOsnd58pqK6nk4GxdX1vME
|
||||||
|
BdLtyrBRAgMBAAECggEAC1wXfPlqxoQe65WAVoOJTvV90+JKvlRPCZu/wm+C8r7b
|
||||||
|
Vz5Ekt6wQflHrWoQlpv0CivKSNzCONZ2IJazrGHti0mXwSeXzptEyApRDaiNVnrV
|
||||||
|
mKdnrjcQThw7iPXgSaWS9/vwMmhgayLy5ABkBi4GhsjINlKP7wctw1vZP+N6NCNd
|
||||||
|
Ql3taStvDKmG0SfJHF6/2o/XBpof3IJEL7ghbzyTTbWWaO34J1mJ8A+AmjGhj9GE
|
||||||
|
Dp3XuOrO9W7MVd1nfZDtGBS8qf80AwROyodZZRma9vZuWJZ5aQFi2CnUEtU1T+Uv
|
||||||
|
tW+F6tg2FOMr8M0Fb79wGIDwSF8u/QcTvwhEzZAfiQKBgQDioOofnE1oB1DOMnqZ
|
||||||
|
SOFjs+vsirvS6G3lo27+HkE3TgvCHR4sk1305AiXtjmPu8iaUCo9qn18MtduY2RS
|
||||||
|
CcKMOG/FxhmDyP5I29DhJRhvERIpJd0kcSDQOgtaoVPC1XzIlyTqte6nGX9kAnA/
|
||||||
|
x/OOXrZ0hjhMNDcZzf2NasPYJQKBgQDYGqTobkVBk+eekNWklnTh41/649rUIgTu
|
||||||
|
JStArtY2hgaEInYcGa2e7cEj7nIHA0iGy3EJ2yvwoUIyxtoXVcGohu2IrzlhS33T
|
||||||
|
R4jA7nE2/yHZrEMEJovuSU0eMw7rgvEtL79Q0RToYnTY1EU6X/BBoFfiiEeNMHKz
|
||||||
|
zjDOOQ6ZvQKBgGCWChIc0FSkwYiPtPZ9PCn89XCjk/cIPkYfiF9fT5Ydeh9pv4Fp
|
||||||
|
8SI8yXi3HgMnGhDCV65eagqztGMEky3voO2X4/MbQaaL0+wDWxuJbsdvNBk7XOt6
|
||||||
|
F20HP+2JUiR4Ti1DVWV+0k5/LG7YJzTXp/KmZQZ2aan4mv8xbn2F4h/NAoGAI4ou
|
||||||
|
OLN53FEQtHkpSYoc6tFUBZTXdi+qE+g09sxKGmlsROrN9c0bSpnbO6eJRTH7CYAH
|
||||||
|
tRFAZrB+jI87ar8FvEuEYQhALYoWxVpsWR5drCfFT2EPHG2icavIbQEEoSLFuyKx
|
||||||
|
Gf9oqtcWVFqEkBcbEg/mpDC5Y7TmCEAOsrubdRkCgYEAl7B+EzIdG0rabGoti09q
|
||||||
|
QXfyiTjR7nQYkhpLxMCeNlCpQ8Y15XSa8bm1UIGYqj/ZBpeBNhrj64IHoub5Vd43
|
||||||
|
tzbb8yNgoLUd16TU1VvyccCMGQVPIF8RkDsAtEawV2eoXbHAstN99xbC8jsLNZRQ
|
||||||
|
fcfgTiQaXRJmlVx6jfbfZd4=
|
||||||
|
-----END PRIVATE KEY-----
|
Reference in New Issue
Block a user