Commit Graph

55 Commits

Author SHA1 Message Date
rinpatch 2c55f7d7cb Remove FedSockets
Current FedSocket implementation has a bunch of problems. It doesn't
have proper error handling (in case of an error the server just doesn't
respond until the connection is closed, while the client doesn't match
any error messages and just assumes there has been an error after 15s)
and the code is full of bad descisions (see: fetch registry which uses
uuids for no reason and waits for a response by recursively querying a
 ets table until the value changes, or double JSON encoding).

Sometime ago I almost completed rewriting fedsockets from scrach to
adress these issues. However, while doing so, I realized that fedsockets
 are just too overkill for what they were trying to accomplish, which is
 reduce the overhead of federation by not signing every message.
This could be done without reimplementing failure states and endpoint
 logic we already have with HTTP by, for example, using TLS cert auth,
or switching to a more performant signature algorithm. I opened
https://git.pleroma.social/pleroma/pleroma/-/issues/2262 for further
discussion on alternatives to fedsockets.

From discussions I had with other Pleroma developers it seems like they
 would approve the descision to remove them as well,
therefore I am submitting this patch.
2020-11-17 17:28:30 +03:00
Mark Felder 8906f30ba1 Use an upstream for reverse proxy so future modifications are simplified 2020-09-21 16:19:08 -05:00
Mark Felder ade7fede71 Most proxy settings can be global 2020-09-21 16:13:45 -05:00
Mark Felder 2b553b8f8e Remove duplicate setting 2020-09-21 16:11:01 -05:00
Mark Felder 75f6e5e8b7 Add FedSockets config 2020-09-21 16:10:31 -05:00
normandy 122328b93a Update pleroma.nginx to support TLSv1.3
Based on SSL config from https://ssl-config.mozilla.org/
2020-06-12 02:05:49 -04:00
Mark Felder e04e16bbc0 Do not strip Cache-Control headers from media. Trust the Pleroma backend. 2020-03-13 11:31:55 -05:00
minibikini f9380289eb Add `remote_ip` plug 2019-09-27 21:59:23 +00:00
kPherox 99b4847da3
Fix missing changes in 2019-08-30 21:00:50 +09:00
rinpatch 997e766929 Remove sudo in the nginx config command example 2019-06-23 07:39:23 +03:00
rinpatch c013d3f3c8 Fix the webroot method in the nginx config 2019-06-22 20:26:59 +03:00
rinpatch ddf5e6254a Fix nginx webroot method config 2019-06-21 05:46:21 +03:00
Alfie Pates 356c047759 explicitly set reverse proxy upstream to IPv4
since Pleroma.Web.Endpoint binds on IPv4 only and `localhost.` resolves to
  [::0] on some systems

  fixes .
2019-05-23 22:33:27 +01:00
lambda 1b4c4d29a3 Merge branch 'ssl_trusted_cert' into 'develop'
ssl_trusted_certificate should point to chain.pem if we're demonstrating...

See merge request 
2019-04-12 08:58:46 +00:00
Horsemans 10a9682596 ssl_trusted_certificate should point to chain.pem if we're demonstrating LetsEncrypt: https://community.letsencrypt.org/t/howto-ocsp-stapling-for-nginx/13611/5 2019-03-31 16:58:28 +00:00
Kenneth Zhao e1bdaaa3fe need to put back ipv4 listen instruct 2019-02-26 08:41:37 -08:00
PEA d3a6c065a4 Add ipv6 handling to pleroma.nginx
Replaces `listen 80` with `listen [::]:80`, same with 443
2019-02-25 23:37:46 -05:00
shibayashi 1d8b578bb7
Recommend the acme-challenge path that is used in the installation guides 2019-02-09 23:08:27 +01:00
Mark Felder cc3a83a730 Fix nginx caching issues
Nginx is currently not caching data because proxy_buffering needs to be
enabled for caching to work at all, and we are receiving a Cache-Control
header from Pleroma that states "max-age=0, private, must-revalidate"

Even disregarding the Cache-Control header that should actually be set
to "public, max-age=1209600" as defined in the reverse_proxy code, we
don't want to obey this header at all as it overrides our Nginx caching
rules.
2019-01-10 21:29:05 +00:00
Mark Felder d56772c813 proxy buffering still needs to be off 2018-12-12 17:36:00 +00:00
Mark Felder 48c4f88ffd Update proxy config to improve behavior and allow compatibility with Safari on MacOS and iOS 2018-12-12 17:31:47 +00:00
href 97b00d366f
reverse_proxy: more headers 2018-11-30 18:00:57 +01:00
William Pitcock e4bd5a6950 example configs: kill STS/CT headers 2018-11-11 06:56:46 +00:00
William Pitcock 057a9017b3 example configs: remove obsolete CSP configuration 2018-11-11 06:12:26 +00:00
William Pitcock fd918863aa nginx example config: remove CORS headers, now managed by CORSPlug. 2018-11-11 05:42:30 +00:00
kaniini e1c40b8ca2 Merge branch 'patch-2' into 'develop'
Remove Access-Control-Allow-Origin in pleroma.nginx

See merge request 
2018-11-06 21:24:16 +00:00
Hakaba Hitoyo 3ea4f9ac8d Remove Access-Control-Allow-Origin 2018-11-05 04:18:43 +00:00
shibayashi 800d233631
Use example.tld so a single search and replace works 2018-11-04 14:06:18 +01:00
shibayashi 732d3fce73
Use the same example domain in all config examples 2018-11-03 23:44:26 +01:00
shibayashi 56c49513e0
Use the server name as variable 2018-11-03 23:41:37 +01:00
barrucadu a32e013909 Relax form-action content security policy
'self' only allows forms submitted to the same origin, which
breaks the "remote follow" form.  To allow remote following,
we want to allow forms to be submitted to any host.
2018-09-28 22:17:19 +00:00
shibayashi d027c53d75
Add frame-ancestors 'none' to all configs 2018-08-30 11:10:16 +02:00
shibayashi d035566116
installation/pleroma.nginx: Add 'always' to the security headers, so that they are included regardless of the status code 2018-08-29 19:00:40 +02:00
Haelwenn (lanodan) Monnier 0fd2eaf7af
installation/pleroma.nginx: Add Content-Security-Policy
Closes: https://git.pleroma.social/pleroma/pleroma/issues/266
2018-08-28 20:54:50 +02:00
Artik Banana 394d0c94c4 Add comment about TLS curves for older servers. 2018-06-16 18:14:05 +00:00
dex 750cfbf38d * fix nginx 1.15 warning:
nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
2018-06-13 09:54:23 +00:00
Artik Banana 93c614bf13 * Removed TLSv1 and TLSv1.1
* Added OCSP Stapling
* Added SSL Cache
* Changed ciphers
* Specified ECDH curves
2018-06-11 23:01:14 +00:00
Artik Banana c645a8de2b Security upgrades:
* Removed TLSv1 and TLSv1.1
* Added OCSP Stapling
* Added SSL Cache
* Changed ciphers
* Specified ECDH curves
2018-06-11 22:56:54 +00:00
Dominik V. Salonen a6fd9c4b00 Update pleroma.nginx
proxy_ignore_client_abort will continue to fetch from upstream even if a client aborts the connection. This is highly recommended when cache is being used. If a client leaves/refreshes the page while a user's avatar or some other media is halfway loaded, the cached copy might in some cases be broken. Leaving future requests to the same URL broken until cache expires.
2018-05-28 10:36:27 +00:00
Niklas Poslovski f0e8194a71 Repair some access-control headers required for third-party webclients 2018-05-23 08:48:28 +02:00
Niklas Poslovski d81a4e9280
Add access-control-expose-headers to Nginx default config 2018-05-22 15:39:29 +02:00
Artik Banana 0a1fd8adf0 Added headers for a more secure default. 2018-05-06 14:19:29 +00:00
csaurus 1c6a691570 Add info about certbot with the webroot plugin to pleroma.nginx 2018-04-20 18:43:49 -04:00
Hector A. Escobedo 7e262c2997 Fix max upload size in nginx config.
The built-in nginx default does not allow users to upload images
larger than 1 MB. This increases the maximum request size to match
the default Pleroma config upload_limit parameter. Some helpful
comments were also added.
2018-04-08 11:21:29 -04:00
William Pitcock d8464b603e nginx: document how to enable CORS support 2018-04-01 01:28:27 -05:00
lambda f8f3abe1be Update pleroma.nginx 2018-03-28 09:34:08 +00:00
lambda 060ac6cb95 Update pleroma.nginx 2018-03-08 18:00:59 +00:00
lambda 46c8f79cd7 Merge branch 'feature/cross-origin' into 'develop'
Access-Control-Allow-Origin

See merge request 
2018-01-26 23:30:11 +00:00
Hakaba Hitoyo 9c0c40cf1e Access-Control-Allow-Origin 2018-01-26 22:58:58 +00:00
Hakaba Hitoyo aceef36e56 Correct pleroma.nginx 2018-01-14 10:57:25 +00:00