It works! I modify the /etc/hosts as you suggested.
Thanks Graham for your fast reply and help ! On Sunday, September 18, 2016 at 1:07:46 PM UTC+8, Graham Dumpleton wrote: > > If you read through the email I said that --allow-locahost likely wouldn’t > work because of how Apache can interpreter localhost and override what you > want. > > That is why I said you needed to use a proper host name with --server-name > and not use ‘localhost’. Did you try that? > > Repeating what I said: > > A better way of doing it is to change ‘--server-name localhost’ to: > > --server-name 127.0.0.1.xip.io > > Then access the site as: > > https://127.0.0.1.xip.io > > Also read other comment I said in original email. > > Graham > > On 18 Sep 2016, at 3:03 PM, peter hoth <hoth....@gmail.com <javascript:>> > wrote: > > I did add the option --allow-localhost and i still get the 403 Forbidden > response from the server. > > mod_wsgi-express setup-server --user admin --group admin webapp.wsgi -- > startup-log --access-log \ > --port=80 --server-root=/usr/local/webapp \ > --https-port 443 --https-only --allow-localhost --server-name localhost -- > ssl-certificate /usr/local/webapp/sslcerts/domain > > I manually created a httpd.conf by plucking some lines from the created > httpd.conf and i managed to get the https://localhost to work. > > > LoadModule wsgi_module ${MOD_WSGI_SERVER_ROOT}/lib/python2.7/site-packages > /mod_wsgi/server/mod_wsgi-py27.so > > LoadModule version_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_version.so' > LoadModule mpm_event_module > '${MOD_WSGI_MODULES_DIRECTORY}/mod_mpm_event.so' > : > LoadModule socache_shmcb_module ${MOD_WSGI_MODULES_DIRECTORY}/ > mod_socache_shmcb.so > LoadModule ssl_module ${MOD_WSGI_MODULES_DIRECTORY}/mod_ssl.so > > Listen 443 > SSLSessionCache > "shmcb:${MOD_WSGI_SERVER_ROOT}/logs/ssl_scache(512000)" > SSLSessionCacheTimeout 300 > > User ${MOD_WSGI_USER} > Group ${MOD_WSGI_GROUP} > > ServerName localhost > ServerRoot '${MOD_WSGI_SERVER_ROOT}' > PidFile '${MOD_WSGI_SERVER_ROOT}/httpd.pid' > > ErrorLog "${MOD_WSGI_SERVER_ROOT}/error_log" > CustomLog "${MOD_WSGI_SERVER_ROOT}/access_log" common > > <Directory /> > AllowOverride None > Require all denied > </Directory> > > <VirtualHost *:80> > ServerName 127.0.0.1 > > WSGIScriptAlias / "${MOD_WSGI_SERVER_ROOT}/webapp.wsgi" > Alias /static "${MOD_WSGI_SERVER_ROOT}/application/static" > DocumentRoot "${MOD_WSGI_SERVER_ROOT}" > <Directory "${MOD_WSGI_SERVER_ROOT}"> > Options None > AllowOverride None > Require all granted > </Directory> > </VirtualHost> > > <virtualhost *:443> > ServerName 127.0.0.1 > > WSGIScriptAlias / "${MOD_WSGI_SERVER_ROOT}/webapp.wsgi" > Alias /static "${MOD_WSGI_SERVER_ROOT}/application/static" > DocumentRoot "${MOD_WSGI_SERVER_ROOT}" > <Directory "${MOD_WSGI_SERVER_ROOT}"> > Options None > AllowOverride None > Require all granted > </Directory> > > ## SSL > SSLEngine On > SSLCertificateFile "${MOD_WSGI_SERVER_ROOT}/sslcerts/domain.crt" > SSLCertificateKeyFile "${MOD_WSGI_SERVER_ROOT}/sslcerts/domain.key" > > </virtualhost> > > So i guess it's probably some commands in the mod_wsgi created httpd.conf > that is causing the "Forbidden" error. I will try to add more lines to see > what is causing the problem. One thing i noticed from the mod_wsgi created > httpd.conf is that there is the following block: > > : > <IfDefine !ONE_PROCESS> > WSGIRestrictEmbedded On > WSGISocketPrefix /usr/local/webapp/wsgi > <IfDefine MOD_WSGI_MULTIPROCESS> > : > </IfDefine> > <IfDefine !MOD_WSGI_MULTIPROCESS> > WSGIDaemonProcess localhost:80 \ > display-name='(wsgi:localhost:80:0)' \ > home='/usr/local/webapp' \ > threads=5 \ > maximum-requests=0 \ > python-path='' \ > python-eggs='/usr/local/webapp/python-eggs' \ > lang='en_US.UTF-8' \ > locale='en_US.UTF-8' \ > listen-backlog=100 \ > queue-timeout=45 \ > socket-timeout=60 \ > connect-timeout=15 \ > request-timeout=60 \ > inactivity-timeout=0 \ > startup-timeout=15 \ > deadlock-timeout=60 \ > graceful-timeout=15 \ > eviction-timeout=0 \ > shutdown-timeout=5 \ > send-buffer-size=0 \ > receive-buffer-size=0 \ > response-buffer-size=0 \ > server-metrics=Off > </IfDefine> > </IfDefine> > : > > I am not sure how the DaemonProcess works in SSL but is this correct for > the DaemonProcess to listen to localhost:80 even though i specify > --https-only ? > > Regards, > Pete > > > On Sunday, September 18, 2016 at 4:42:11 AM UTC+8, Graham Dumpleton wrote: >> >> In general a HTTPS site should have a proper fully qualified domain name >> which matches what is in the certificate. You wouldn’t use ‘localhost’ for >> the server name. >> >> For a start, try adding the option: >> >> —allow-localhost >> >> Depending on the platform this still may not work though as I recollect >> that localhost and host access controls can work strangely on Apache with >> some operating systems. >> >> A better way of doing it is to change ‘—server-name localhost’ to: >> >> —server-name 127.0.0.1.xip.io >> >> Then access the site as: >> >> https://127.0.0.1.xip.io >> >> This gets around the way that Apache or the operating system can treat >> localhost in a special way. >> >> This requires external DNS access and some Intranets can even block >> xip.io. >> >> In that case add an explicit entry into your /etc/hosts file for some >> fully qualified name, such as: >> >> 127.0.0.1 www.example.com >> >> and use: >> >> —server-name www.example.com >> >> Graham >> >> On 17 Sep 2016, at 11:38 PM, peter hoth <hoth....@gmail.com> wrote: >> >> Hi, >> >> I managed to get my web app running with the following command: >> >> mod_wsgi-express setup-server --user admin --group admin mycloud.wsgi >> --startup-log --access-log --port=80 --server-root=/usr/local/mycloud >> >> Next, I managed to generate my SSL cert and performed the following: >> >> mod_wsgi-express setup-server --user admin --group admin mycloud.wsgi >> --startup-log --access-log \ >> --port=443 --server-root=/usr/local/mycloud \ >> --https-port 443 --https-only --server-name localhost --ssl-certificate >> /usr/local/mycloud/sslcerts/domain >> >> The error_log shows that my app is actually running when the apache is >> started (i.e. apachectl start) >> No errors in startup_log and access_log >> >> However, when i pointed my browser to https://localhost it shows the >> following error: >> >> Forbidden >> You don't have permission to access / on this server. >> >> The error_log has the following line: >> >> [Sat Sep 17 21:34:46.119671 2016] [authz_core:error] [pid 6953:tid >> 139664394032896] [client 127.0.0.1:40492] AH01630: client denied by >> server configuration: /usr/local/armscloud/htdocs/ >> >> I did not use htdocs when i run the web app without SSL and it was >> working fine. Do i need to add additional parameters to the >> mod_wsgi-express command for SSL ? >> >> The generated certs are confirmed working. >> >> === My environment: >> CentOS 6.8 >> port 443 is enabled in firewall >> default apache service that comes with OS is disabled >> >> python 2.7.12 >> virtualenv 15.0.3 >> pip freeze modules: >> : >> mod-wsgi-httpd=2.4.12.6 >> mod-wsgi==4.5.7 >> : >> >> === >> >> Regards, >> Pete >> >> -- >> You received this message because you are subscribed to the Google Groups >> "modwsgi" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to modwsgi+u...@googlegroups.com. >> To post to this group, send email to mod...@googlegroups.com. >> Visit this group at https://groups.google.com/group/modwsgi. >> For more options, visit https://groups.google.com/d/optout. >> >> >> > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to modwsgi+u...@googlegroups.com <javascript:>. > To post to this group, send email to mod...@googlegroups.com <javascript:> > . > Visit this group at https://groups.google.com/group/modwsgi. > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to modwsgi+unsubscr...@googlegroups.com. To post to this group, send email to modwsgi@googlegroups.com. Visit this group at https://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/d/optout.