FINERACT-2310: collate and improve security documentation
* fix various typos, spacing, formatting issues * fix links to legacy docs in API docs * update keycloak oauth dev instructions * update default oauth URL for latest Keycloak * use consistent quoting in oauth docs (single quotes) * use asciidoc auto-enumerated lists whenever possible * migrate security topics from readme into asciidoc: oauth, 2FA, HTTPS * move :hardbreaks: setting to config file so all config settings are in one place. (I think it's fine that `license.adoc` will use hardbreaks -- that's how the plain text version is formatted so it should look more familiar) * add intro to security chapter * migrate in Securing Fineract wiki content from https://cwiki.apache.org/confluence/display/FINERACT/Securing+Fineract * just say "oauth" (not "oauth2") to conform terminology throughout docs -- OAuth 2.0 is just the latest version * cross-ref HTTPS section from Securing Fineract * reposition hardening options as tips * see also: https://lists.apache.org/thread/81qdxttffp6wn23c48zvk93hc13373qv * simplify/clarify example oauth curl requests * Testing just now and I didn't need --location. * Also I imagine folks will need --insecure with the self-signed default cert in dev. * don't change default oauth URL * no surprises for existing deployments * clarifies the keycloak v26 example
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
= HTTPS
|
||||
|
||||
Because Apache Fineract deals with customer sensitive personally identifiable information (PII), it very strongly encourages all developers, implementors and end-users to always only use HTTPS. This is why it does not run on HTTP even for local development and enforces use of HTTPS.
|
||||
Because Apache Fineract deals with customer sensitive personally identifiable information (PII), it very strongly encourages all developers, implementors and end-users to always only use HTTPS. This is why it does not run on HTTP even for local development and enforces use of HTTPS by default.
|
||||
|
||||
For this purpose, Fineract includes a built-in default SSL certificate. This cert is intended for development on `localhost`, only. It is not trusted by your browser (because it's self signed).
|
||||
|
||||
@@ -11,3 +11,7 @@ Such products, when correctly configured, add the conventional `X-Forwarded-For`
|
||||
Alternatively, you could replace the built-in default SSL certificate with one you obtained from a Certificate Authority. We currently do not document how to do this, because we do not recommend this approach, as it's cumbersome to configure and support and less secure than a managed auto rotating solution.
|
||||
|
||||
The Fineract API client supports an insecure mode (`FineractClient.Builder#insecure()`), and API users such as mobile apps may expose Settings to let end-users accept the self signed certificate. This should always be used for testing only, never in production.
|
||||
|
||||
All SSL-related properties are tunable. SSL can be turned off by setting the environment variable `FINERACT_SERVER_SSL_ENABLED` to false. If you do that then please make sure to also change the server port to `8080` via the variable `FINERACT_SERVER_PORT`, just for the sake of keeping the conventions.
|
||||
|
||||
To use a different SSL keystore, set `FINERACT_SERVER_SSL_KEY_STORE` to a path to a different (not embedded) keystore. The password can be set via `FINERACT_SERVER_SSL_KEY_STORE_PASSWORD`. See the `application.properties` file and the https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html[latest Spring Boot documentation] for details.
|
||||
|
||||
Reference in New Issue
Block a user