在apache中使用mono与ssl

在apache中使用mono与ssl

问题描述:

我有以下问题:在apache中使用mono与ssl

我想通过ssl访问单声道应用程序。我希望它没有ssl就无法访问。

我使用apache2.4和MOD-单server4.exe 3.0.0.0

目前,我有一个这样的工作配置:

<VirtualHost *:80> 

    DocumentRoot /srv/www/htdocs/my-mono-app 

    #SSLEngine on 
    #SSLCertificateFile /path/to/key.pem 
    #SSLCertificateKeyFile /path/to/key.pem 

    MonoAutoApplication disabled 

    MonoServerPath my-mono-app "/usr/bin/mod-mono-server4" 

    MonoApplications my-mono-app "/my-mono-app:/srv/www/htdocs/my-mono-app" 

    <Directory /srv/www/htdocs/my-mono-app> 
     Require all granted 
     MonoSetServerAlias my-mono-app 
     SetHandler mono 
    </Directory> 
</VirtualHost> 

但只要我转SSLEngine打开并将端口更改为443,它不再工作。它只是说:Object not found!如果我导航到地址。

它不记录日志中的任何错误。

你能帮我解决这个问题吗?

PS:下面是完整的没有工作的配置:

<VirtualHost *:443> 

    DocumentRoot /srv/www/htdocs/my-mono-app 

    SSLEngine on 
    SSLCertificateFile /path/to/key.pem 
    SSLCertificateKeyFile /path/to/key.pem 

    MonoAutoApplication disabled 

    MonoServerPath my-mono-app "/usr/bin/mod-mono-server4" 

    MonoApplications my-mono-app "/my-mono-app:/srv/www/htdocs/my-mono-app" 

    <Directory /srv/www/htdocs/my-mono-app> 
     Require all granted 
     MonoSetServerAlias my-mono-app 
     SetHandler mono 
    </Directory> 
</VirtualHost> 
+0

什么版本的Mono? – mikep

+0

我更新了问题 –

我用单5.x的一次。从那次经历中我能记得,mod_mono.conf需要修改目录路径。我从Apache访问和错误日​​志中获得了该解决方案。在搜索整个地球之前,我尝试了很多方法 - 符号化,清除安装和从源代码构建等。您可以试试我的方式,保留mod_mono.conf的备份。

<IfModule !mono_module> 
    LoadModule mono_module "libexec/apache2/mod_mono.so" 
</IfModule> 

<IfModule mono_module> 
    AddType application/x-asp-net .config .cs .csproj .dll .resources .resx .sln .vb .vbproj 
    AddType application/x-asp-net .asax .ascx .ashx .asmx .aspx .axd .browser .licx .master .rem .sitemap .skin .soap .webinfo 

    MonoAutoApplication enabled 
    MonoDebug true 
    MonoServerPath "/usr/bin/mod-mono-server4" 
    MonoSetEnv LANG=fr_FR.UTF-8 
    MonoUnixSocket "/tmp/.mod_mono" 

    <IfModule dir_module> 
     DirectoryIndex Default.aspx 
    </IfModule> 

    <DirectoryMatch "/(bin|App_Code|App_Data|App_GlobalResources|App_LocalResources)/"> 
     Order deny,allow 
     Deny from all 
    </DirectoryMatch> 

    <Location "/my-mono-app"> 
     Order deny,allow 
     Deny from all 
     Allow from 127.0.0.1 ::1 
     SetHandler mono-ctrl 
    </Location> 
</IfModule> 

它太大,写作评论,它可能不是100%保证的答案,取决于你的尝试。在你的配置中的东西是正确的:

Require all granted 
MonoSetServerAlias my-mono-app 
SetHandler mono 

没有该节奇怪的错误出现。

+0

如果我把目录放在mod_mono.conf文件中,我有问题,应用程序仍然可以访问没有ssl - 我想它只能通过ssl访问。 我的问题的措辞有点不好,我更新了它。 –

+0

对于旧版本的Mono,您可以简单地在前面添加一个反向代理服务器,并将所有非HTTPS流量重定向到HTTPS。 –