cable.conf 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. ###
  2. ### Apache configuration file for Signal-Server
  3. ###
  4. ### VirtualHost for the main service:
  5. <VirtualHost *:443>
  6. ServerName cable-service.cable.im
  7. SSLEngine On
  8. # Per il servizio Signal vero e proprio usiamo invece il certificato self-signed.
  9. # Nel keystore del'app Android è il root certificate della nostra CA, assicurando
  10. # così che l'app riconosca come validi solo i certificati emessi dalla nostra CA.
  11. SSLCertificateFile /home/cable/certificati/whisper.crt
  12. SSLCertificateKeyFile /home/cable/certificati/whisper.key
  13. Include /etc/letsencrypt/options-ssl-apache.conf
  14. #SSLCACertificateFile /home/cable/certificati/rootCA.crt
  15. # Doesn't make sense for self-signed certificates:
  16. SSLUseStapling Off
  17. # Per proxare websocket (ws://) serve questa roba:
  18. # https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html
  19. #
  20. # Con ProxyPass non sono riuscito a fare il proxy http+websocket.
  21. # Ho provato con solo "ProxyPass ws://127.0.0.1:4242/" e anche
  22. # mettendo un ProxyPass per http:// e uno per ws://, non va.
  23. # Alla fine ho trovato la soluzione usando mod_rewrite leggendo
  24. # di gente che ha avuto lo stesso problema (con altri software):
  25. #
  26. # https://stackoverflow.com/questions/27526281/websockets-and-apache-proxy-how-to-configure-mod-proxy-wstunnel
  27. #
  28. # Forse non ottimale, ma comunque in produzione lo farei con nginx...
  29. RewriteEngine On
  30. RewriteCond %{HTTP:Upgrade} =websocket [NC]
  31. RewriteRule /(.*) ws://127.0.0.1:4242/$1 [P,L]
  32. RewriteCond %{HTTP:Upgrade} !=websocket [NC]
  33. RewriteRule /(.*) http://127.0.0.1:4242/$1 [P,L]
  34. ProxyPassReverse / http://127.0.0.1:4242/
  35. CustomLog "/var/log/httpd/cable/cable-service.cable.im.access.log" combined
  36. ErrorLog "/var/log/httpd/cable/cable-service.cable.im.error.log"
  37. LogLevel warn
  38. # Production:
  39. #CustomLog "/dev/null"
  40. #ErrorLog "/dev/null"
  41. </VirtualHost>
  42. ### VirtualHost for letting Twilio call back:
  43. <VirtualHost *:443>
  44. ServerName cable-service-ca.cable.im
  45. SSLEngine On
  46. # Su cable-service-ca.cable.im serve un certificato valido (letsencrypt).
  47. # È l'hostname a cui si connette Twilio per ottenere le informazioni
  48. # necessarie a fare la verifica del numero tramite chiamata vocale.
  49. SSLCertificateFile /etc/letsencrypt/live/cable-service-ca.cable.im/cert.pem
  50. SSLCertificateKeyFile /etc/letsencrypt/live/cable-service-ca.cable.im/privkey.pem
  51. Include /etc/letsencrypt/options-ssl-apache.conf
  52. SSLCertificateChainFile /etc/letsencrypt/live/cable-service-ca.cable.im/chain.pem
  53. ProxyVia On
  54. ProxyPreserveHost On
  55. ProxyPass / http://127.0.0.1:4242/
  56. ProxyPassReverse / http://127.0.0.1:4242/
  57. CustomLog "/var/log/httpd/cable/cable-service-ca.cable.im.access.log" combined
  58. ErrorLog "/var/log/httpd/cable/cable-service-ca.cable.im.error.log"
  59. LogLevel warn
  60. # Production:
  61. #CustomLog "/dev/null"
  62. #ErrorLog "/dev/null"
  63. </VirtualHost>
  64. ### Giphy proxy:
  65. <VirtualHost *:80>
  66. ServerName giphy.com
  67. ServerAlias *.giphy.com
  68. ProxyRequests On
  69. # The AllowConnect directive specifies a list of ports
  70. # to which the proxy CONNECT method may connect.
  71. AllowConnect 443
  72. # Only allow HTTP CONNECT requests, denying the others (GET, POST, ...).
  73. <Location />
  74. Require method CONNECT
  75. </Location>
  76. # This <Proxy *> block is not really needed, but let's leave it.
  77. <Proxy *>
  78. # New syntax, see https://httpd.apache.org/docs/2.4/upgrading.html
  79. # Can't be mixed with the old "Order" and "Allow" stuff, so we stay
  80. # with the old syntax for now...
  81. #Require all denied
  82. Order deny,allow
  83. Deny from all
  84. </Proxy>
  85. <Proxy "*.giphy.com:443">
  86. #Require all granted
  87. Order allow,deny
  88. Allow from all
  89. </Proxy>
  90. CustomLog "/var/log/httpd/cable/giphy-proxy.cable.im.access.log" combined
  91. ErrorLog "/var/log/httpd/cable/giphy-proxy.cable.im.error.log"
  92. LogLevel warn
  93. # Production:
  94. #CustomLog "/dev/null"
  95. #ErrorLog "/dev/null"
  96. </VirtualHost>
  97. ### Adminer (adminer.org):
  98. <VirtualHost *:443>
  99. ServerName db.cable.im
  100. SSLEngine On
  101. SSLCertificateFile /etc/letsencrypt/live/db.cable.im/cert.pem
  102. SSLCertificateKeyFile /etc/letsencrypt/live/db.cable.im/privkey.pem
  103. Include /etc/letsencrypt/options-ssl-apache.conf
  104. SSLCertificateChainFile /etc/letsencrypt/live/db.cable.im/chain.pem
  105. DocumentRoot "/var/www/adminer/"
  106. <Directory /var/www/adminer/>
  107. AuthType Basic
  108. AuthUserFile "/var/www/adminer/.htpasswd"
  109. AuthName "Adminer"
  110. Require valid-user
  111. </Directory>
  112. <Files ".*">
  113. #Require all denied
  114. Order deny,allow
  115. Deny from all
  116. </Files>
  117. CustomLog "/var/log/httpd/cable/db.cable.im.access.log" combined
  118. ErrorLog "/var/log/httpd/cable/db.cable.im.error.log"
  119. LogLevel warn
  120. </VirtualHost>
  121. ### Minio
  122. <VirtualHost *:443>
  123. ServerName s3.cable.im
  124. SSLEngine On
  125. SSLCertificateFile /etc/letsencrypt/live/s3.cable.im/cert.pem
  126. SSLCertificateKeyFile /etc/letsencrypt/live/s3.cable.im/privkey.pem
  127. Include /etc/letsencrypt/options-ssl-apache.conf
  128. SSLCertificateChainFile /etc/letsencrypt/live/s3.cable.im/chain.pem
  129. ProxyVia On
  130. ProxyPreserveHost On
  131. ProxyPass / http://127.0.0.1:9000/
  132. ProxyPassReverse / http://127.0.0.1:9000/
  133. CustomLog "/var/log/httpd/cable/s3.cable.im.access.log" combined
  134. ErrorLog "/var/log/httpd/cable/s3.cable.im.error.log"
  135. LogLevel warn
  136. # Production:
  137. #CustomLog "/dev/null"
  138. #ErrorLog "/dev/null"
  139. </VirtualHost>