Rails Cloud9 public preview w/ elastic ip not working with https

0

Hi there!

I followed all steps available at https://docs.aws.amazon.com/cloud9/latest/user-guide/app-preview.html for sharing a Running Application over the Internet.
It worked well at port 8080.

It happens that my application has many interactions with Slack, that enforces the use of https.

After having configured the ACL and Security Group inbound rules to accept http and https ports (80,8080,8081,8082,443) I'm still unable to access it via https.

When using the preview url (ex: https://12a34567b8cd9012345ef67abcd890e1.vfs.cloud9.us-east-2.amazonaws.com/) it works in https, but this address is only reachable from my browser.

Also, port 80 maps to Apache, not rails.

And when I try to run rails s -p 80 or 443, I get this error:
Permission denied - bind(2) for "0.0.0.0" port 80 (Errno::EACCES)

How can I map the requests from all http/https ports for rails, as cloud9 used to do?

已提問 5 年前檢視次數 366 次
1 個回答
0

I've managed to solve with this apache2 conf. And buying a SSL certificate.

Yes, It's just a shame I had to buy a SSL certificate in order to receive api requests in my dev environment, just because AWS won't let the public address be accessed outside my browser :/

The whole Cloud9 migration for AWS was an awful experience.

001-cloud9.conf:

<VirtualHost *:80>
    
    ServerName domain.com 
    Redirect permanent / https://domain.com/ 
    
</VirtualHost>

<VirtualHost *:8080>
    
    ServerName domain.com 
    Redirect permanent / https://domain.com/ 
    
</VirtualHost>

<VirtualHost *:8081>
    
    ServerName domain.com
    Redirect permanent / https://domain.com/ 
    
</VirtualHost>

<VirtualHost *:8082>
    
    ServerName domain.com
    Redirect permanent / https://domain.com/ 
    
</VirtualHost>

<IfModule mod_ssl.c>
	<VirtualHost _default_:443>
        ServerName domain.com
        
        DocumentRoot /home/ubuntu/environment

        ProxyPreserveHost On
    
        ProxyPass / http://127.0.0.1:3000/
        ProxyPassReverse / http://127.0.0.1:3000/

		SSLEngine on
		SSLCertificateFile /etc/ssl/certs/cert.crt
		SSLCertificateKeyFile /etc/ssl/certs/cert.key
		SSLCertificateChainFile /etc/ssl/certs/cert.crt
		
		<FilesMatch "\.(cgi|shtml|phtml|php)$">
				SSLOptions +StdEnvVars
		</FilesMatch>
		<Directory /usr/lib/cgi-bin>
				SSLOptions +StdEnvVars
		</Directory>

		BrowserMatch "MSIE [2-6]" \
				nokeepalive ssl-unclean-shutdown \
				downgrade-1.0 force-response-1.0
		BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

	</VirtualHost>
</IfModule>
已回答 5 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南