forked from TrueCloudLab/frostfs-dev-env
[#90] Enabled tls for s04
Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
parent
a4300b2a97
commit
1aa8d407ff
9 changed files with 52 additions and 1 deletions
1
.env
1
.env
|
@ -1,6 +1,7 @@
|
||||||
# Basenet settings
|
# Basenet settings
|
||||||
LOCAL_DOMAIN=neofs.devenv
|
LOCAL_DOMAIN=neofs.devenv
|
||||||
IPV4_PREFIX=192.168.130
|
IPV4_PREFIX=192.168.130
|
||||||
|
CA_CERTS_TRUSTED_STORE=/etc/ssl/certs
|
||||||
|
|
||||||
# NeoGo privnet
|
# NeoGo privnet
|
||||||
CHAIN_URL="https://github.com/nspcc-dev/neofs-contract/releases/download/v0.9.2/devenv_mainchain_notary_disabled.gz"
|
CHAIN_URL="https://github.com/nspcc-dev/neofs-contract/releases/download/v0.9.2/devenv_mainchain_notary_disabled.gz"
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -84,7 +84,7 @@ hosts: vendor/hosts
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
.ONESHELL:
|
.ONESHELL:
|
||||||
clean:
|
clean:
|
||||||
@rm -rf vendor/*
|
@rm -rf vendor/* services/storage/s04tls.*
|
||||||
@for svc in $(START_SVCS)
|
@for svc in $(START_SVCS)
|
||||||
do
|
do
|
||||||
vols=`docker-compose -f services/$${svc}/docker-compose.yml config --volumes`
|
vols=`docker-compose -f services/$${svc}/docker-compose.yml config --volumes`
|
||||||
|
|
16
README.md
16
README.md
|
@ -10,6 +10,16 @@
|
||||||
|
|
||||||
Tools to set up local NeoFS network and N3 privnets. Devenv, for short.
|
Tools to set up local NeoFS network and N3 privnets. Devenv, for short.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
Make sure you have installed all of the following prerequisites on your machine:
|
||||||
|
* docker
|
||||||
|
* docker-compose
|
||||||
|
* make
|
||||||
|
* expect
|
||||||
|
* openssl
|
||||||
|
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -24,6 +34,12 @@ $ make prepare.ir
|
||||||
password >
|
password >
|
||||||
fa6ba62bffb04030d303dcc95bda7413e03aa3c7e6ca9c2f999d65db9ec9b82c
|
fa6ba62bffb04030d303dcc95bda7413e03aa3c7e6ca9c2f999d65db9ec9b82c
|
||||||
```
|
```
|
||||||
|
Also you should add self-signed node (`s04.neofs.devenv`) certificate to truststore
|
||||||
|
(default location might be changed using `CA_CERTS_TRUSTED_STORE` variable).
|
||||||
|
This step is required for client services (neofs-http-gw, neofs-s3-gw) to interact with the node:
|
||||||
|
```
|
||||||
|
$ sudo make prepare.storage
|
||||||
|
```
|
||||||
|
|
||||||
Change NeoFS global configuration values with `make update.*` commands. The
|
Change NeoFS global configuration values with `make update.*` commands. The
|
||||||
password of inner ring wallet is `one`. See examples in `make help`.
|
password of inner ring wallet is `one`. See examples in `make help`.
|
||||||
|
|
6
bin/addCert.sh
Executable file
6
bin/addCert.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Source env settings
|
||||||
|
. .env
|
||||||
|
|
||||||
|
ln -sf $(pwd)/services/storage/s04tls.crt ${CA_CERTS_TRUSTED_STORE}/s04.${LOCAL_DOMAIN}.tls.crt
|
|
@ -17,6 +17,9 @@ IPv4 /24 subnet to use for all containers exposed to `basenet_internet`. Last
|
||||||
octet will be defined in `docker-compose.yml` file for each container inside
|
octet will be defined in `docker-compose.yml` file for each container inside
|
||||||
service. For simplicity, each service reserves ten host addresses.
|
service. For simplicity, each service reserves ten host addresses.
|
||||||
|
|
||||||
|
### CA_CERTS_TRUSTED_STORE=/usr/local/share/ca-certificates
|
||||||
|
Trusted store location to add node self-signed tls certificates.
|
||||||
|
|
||||||
## bastion container
|
## bastion container
|
||||||
|
|
||||||
There is a `bastion` container with debian 10 userspace to simplify access to
|
There is a `bastion` container with debian 10 userspace to simplify access to
|
||||||
|
|
|
@ -21,6 +21,10 @@ NEOFS_METRICS_ADDRESS=:9090
|
||||||
|
|
||||||
# GRPC Transport Section
|
# GRPC Transport Section
|
||||||
NEOFS_GRPC_NUM=1
|
NEOFS_GRPC_NUM=1
|
||||||
|
## 0 server
|
||||||
|
### TLS config
|
||||||
|
NEOFS_GRPC_0_TLS_CERTIFICATE=/tls.crt
|
||||||
|
NEOFS_GRPC_0_TLS_KEY=/tls.key
|
||||||
|
|
||||||
# Morph section
|
# Morph section
|
||||||
## Endpoints of sidechain RPC nodes (comma-separated)
|
## Endpoints of sidechain RPC nodes (comma-separated)
|
||||||
|
|
15
services/storage/artifacts.mk
Normal file
15
services/storage/artifacts.mk
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# Create new tls certs
|
||||||
|
|
||||||
|
STORAGE_DIR=$(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
|
||||||
|
SSL_CONFIG := $(shell mktemp)
|
||||||
|
|
||||||
|
get.storage:
|
||||||
|
@echo "⇒ Creating tls certs to NeoFS node"
|
||||||
|
@(echo "[req]"; \
|
||||||
|
echo "distinguished_name=req"; \
|
||||||
|
echo "req_extensions=san"; \
|
||||||
|
echo "[san]"; \
|
||||||
|
echo "subjectAltName=DNS:s04.${LOCAL_DOMAIN}") > ${SSL_CONFIG}
|
||||||
|
@openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes \
|
||||||
|
-subj "/C=RU/ST=SPB/L=St.Petersburg/O=NSPCC/OU=NSPCC/CN=s04.${LOCAL_DOMAIN}" \
|
||||||
|
-keyout ${STORAGE_DIR}/s04tls.key -out ${STORAGE_DIR}/s04tls.crt -extensions san -config ${SSL_CONFIG}
|
|
@ -114,6 +114,8 @@ services:
|
||||||
- storage_s04:/storage
|
- storage_s04:/storage
|
||||||
- ./../../vendor/neofs-cli:/neofs-cli
|
- ./../../vendor/neofs-cli:/neofs-cli
|
||||||
- ./healthcheck.sh:/healthcheck.sh
|
- ./healthcheck.sh:/healthcheck.sh
|
||||||
|
- ./s04tls.crt:/tls.crt
|
||||||
|
- ./s04tls.key:/tls.key
|
||||||
stop_signal: SIGKILL
|
stop_signal: SIGKILL
|
||||||
env_file: [ ".env", ".storage.env" ]
|
env_file: [ ".env", ".storage.env" ]
|
||||||
environment:
|
environment:
|
||||||
|
@ -121,6 +123,7 @@ services:
|
||||||
- NEOFS_NODE_ADDRESSES=s04.${LOCAL_DOMAIN}:8080
|
- NEOFS_NODE_ADDRESSES=s04.${LOCAL_DOMAIN}:8080
|
||||||
- NEOFS_GRPC_0_ENDPOINT=s04.${LOCAL_DOMAIN}:8080
|
- NEOFS_GRPC_0_ENDPOINT=s04.${LOCAL_DOMAIN}:8080
|
||||||
- NEOFS_CONTROL_GRPC_ENDPOINT=s04.${LOCAL_DOMAIN}:8081
|
- NEOFS_CONTROL_GRPC_ENDPOINT=s04.${LOCAL_DOMAIN}:8081
|
||||||
|
- NEOFS_GRPC_0_TLS_ENABLED=true
|
||||||
- NEOFS_NODE_ATTRIBUTE_0=UN-LOCODE:FI HEL
|
- NEOFS_NODE_ATTRIBUTE_0=UN-LOCODE:FI HEL
|
||||||
- NEOFS_NODE_ATTRIBUTE_1=Price:44
|
- NEOFS_NODE_ATTRIBUTE_1=Price:44
|
||||||
healthcheck:
|
healthcheck:
|
||||||
|
|
3
services/storage/prepare.mk
Normal file
3
services/storage/prepare.mk
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
prepare.storage:
|
||||||
|
@echo "Adding self-signed tls certs to trusted store"
|
||||||
|
@./bin/addCert.sh
|
Loading…
Reference in a new issue