У меня есть Mac OS с Snow Snow Leopard v10.6.5, и я разрабатываю приложение Ruby on Rails 3 с использованием Passenger Preference Pane v 1.3.
Чтобы продолжить разработку моего приложения, мне нужна поддержка SSL , но у меня похожая проблема .
Шаги, которые я выполнил, взяты из стандартной установки apache osx:
- Установить панель предпочтений пассажира и пассажира.
- Добавить мое приложение Ruby on Rails (работает)
- Создайте мои ca.key, server.crt и server.key как , подробно описано на веб-сайте Apple ...
... но на третьем шаге мне пришлось остановиться по следующим причинам при редактировании файла /private/etc/apache2/httpd.conf (дополнительную информацию см. На веб-сайте Apple):
1.
Port 80 should be changed to #Port 80.
Я не нашел "Порт 80", но я думаю, что это не проблема, потому что, даже если он присутствует в коде, он закомментирован.
2.
You will need to add the following just below where the Port directive was:
< IfModule mod_ssl.c>
Listen 443
Listen 80
< /IfModule>
Если я добавлю эти строки кода и перезапущу apache2, мое приложение перестанет работать.
3.
[...] The two lines should now look like this:
LoadModule ssl_module libexec/httpd/libssl.so
AddModule mod_ssl.c
Так как код AddModule mod_ssl.c не существует (LoadModule готов к использованию), я попытался добавить его и перезапустить apache2, но мое приложение больше не работает.
4.
Now find the “ServerName” directive and make sure it has 127.0.0.1 for it’s entry.
ServerName 127.0.0.1
Я не знаю, должен ли я войти в него, так как я использую Passenger. Тем не менее, в файле я нашел строку кода (уже прокомментированную) '#ServerName www.example.com:80'.
Что касается кода для Пассажира для сертификатов SSL, я полагаю, что он должен совпадать с проблемой , описанной выше .
Я думаю, что это связано с тем, что руководство было написано очень давно. Итак, что мне делать, чтобы использовать SSL с apache2?
Просто чтобы прояснить ситуацию, я также включил код, связанный с Панелью предпочтений пассажиров ...
... / частный / и т.д. / apache2 / httpd.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.2
PassengerRuby /usr/local/bin/ruby
# Added by the Passenger preference pane
# Make sure to include the Passenger configuration (the LoadModule,
# PassengerRoot, and PassengerRuby directives) before this section.
<IfModule passenger_module>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName _default_
</VirtualHost>
Include /private/etc/apache2/passenger_pane_vhosts/*.conf
</IfModule>
... / частный / и т.д. / apache2 / passenger_pane_vhosts / subdomain.domain.com.vhost.conf
<VirtualHost *:443>
ServerName subdomain.domain.com
DocumentRoot "/Users/<my_user_name>/Sites/subdomain/public"
RackEnv development
<Directory "/Users/<my_user_name>/Sites/subdomain/public">
Order allow,deny
Allow from all
</Directory>
# SSL Configuration
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLOptions +FakeBasicAuth +ExportCertData +StdEnvVars +StrictRequire
#Self Signed certificates
SSLCertificateFile /private/etc/apache2/ssl/server.crt
SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
SSLCertificateChainFile /private/etc/apache2/ssl/ca.crt
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>