出于安全原因,Web应用程序的身份validation应该迁移到SSL客户端证书。 应该可以使用用户名/密码或SSLlogin。 此外,来自内联网的用户应该被允许使用该应用程序,而不需要额外的authentication。 我们试图根据官方文件来实施这种情况,但没有成功。 这是我们目前的configuration <Directory /opt/app/system/html> RedirectMatch permanent ^/$ /exec/login.pl Options -Indexes +FollowSymLinks SSLVerifyClient optional SSLVerifyDepth 2 SSLRequire %{SSL_CLIENT_I_DN_O} eq "Company_O" SSLOptions +FakeBasicAuth Satisfy any AuthType Basic AuthName "Zugriffsschutz" AuthBasicProvider file AuthUserFile /etc/apache2/htaccess/iapp.passwd require valid-user Order allow,deny Allow from 10.20.0.0/255.255.0.0 Allow from 10.144.100 </Directory> 通过这种configuration,甚至不需要客户端证书。 如果我们删除基本的身份validationconfiguration,SSL客户端身份validation运作良好。
我通常用Apache和OpenSSL很好,但是这个让我完全困惑。 我在Ubuntu 12.04 LTS服务器上运行Apache 2.2.22和OpenSSL 1.0.1。 我configuration了一个基于IP的虚拟主机,将所有HTTP请求redirect到HTTPS,并使用严格的传输安全性来帮助保持这种状态。 我将该站点从内部CA颁发的证书迁移到由StartSSL签名的证书。 当前的证书有一个1024位的RSA密钥,新的有一个2048位的RSA密钥。 服务器有一个或两个其他SSL虚拟主机,所有这些都使用1024位密钥。 目前的证书工作完美。 两个证书的密钥都在同一个目录中,拥有600权限(目录为710 )。 证书都在不同的目录中,拥有644权限(目录有755 )。 (例如,两个键都在/var/ssl/keys ,两个都在/var/ssl/certs 。 然而,当我改变configuration使用新的证书(这是唯一的改变,我不更新主机名或其他)Apache拒绝启动,给“无法写入随机状态”的错误。 我已经检查过了,我没有任何(根拥有的或其他) .rnd文件在附近。 如果我更改回到1024位证书,Apache启动完美,一切正常。 我遇到了这个FAQ条目 ,指出Apache不支持2048位密钥,但是我也遇到了这个博客文章,指出FAQ条目必须是旧的(许多条目似乎相当古老),因为它完美的工作Apache 2.2.11。 任何人都可以提出为什么Apache可能会失败,新的证书?
我最近在我的服务器*.key和*csr文件中创build了一个SSL证书。 然后我用Comodo创build了*crt和*.ca-bundle 。 我有2个当前的虚拟主机: 虚拟主机 – http://www.example.com NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/home/example/public_html/example.com/httpdocs" ServerName example.com ServerAlias www.example.com </VirtualHost> 虚拟主机https://www.example.com NameVirtualHost *:443 <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/certs/example_com.crt SSLCertificateKeyFile /etc/ssl/certs/server.key <Directory /home/example/public_html/example.com/httpdocs> AllowOverride All </Directory> DocumentRoot /home/example/public_html/example.com/httpdocs ServerName example.com </VirtualHost> 问题是,当我去https://www.example.com我得到一个404 我不知道虚拟主机是否正确,或者为什么我得到了404。有没有人见过这个? 我已经启用mod_ssl并重新启动apache 非常感谢
如果我简单地使用“SSLCertificateFile”和“SSLCertificateKeyFile”两次,证书链就会被打破。 我可以使用从不同的中间CA证书颁发的RSA和ECC证书吗? ================== 更新:OpenSSL 1.0.2解决问题。 只需使用“SSLCertificateFile”和“SSLCertificateKeyFile”两次。 请注意,“SSLCertificateFile”应该是证书的整个链。
对于Apache中的mod_ssl来说,你需要在服务器上使用你的RSA私钥。 如果密钥是密码保护的,则必须在重新启动apache时input密码。 有SSLPassPhraseDialog所以你可以存储密钥encryption,并有一个程序传递它的短语,但是这确实没有比保持未encryption更安全。 我想知道,如果Apache支持,或可以作出支持,使用密钥代理进行操作需要私钥,很像ssh-agent openssh工作。 这样,只要服务器本身重新启动(假设代理在正常操作期间不以某种方式死亡),我只需要input密钥到密钥。 我意识到密钥存储在代理内存中,并从内存中获取可能,但很难做到。 另外,如果代理实际上是通过ssh从另一个主机转发的,而密钥在那里的内存中,那么只要Web服务器受到攻击,就不可能获得私钥。 如果apache目前支持这个答案是“否”,那么答案是“可以支持这个”吗? 我不确定关键操作是如何工作的,以及私钥需要什么级别的接触,并且我认为在我开始尝试代码尝试和自己一起破解之前,我会问。
我有一个使用Tomcat 7部署的正在运行的YouTrack实例,它在http://example.com:8080/youtrack上正常工作 Apache已经被configuration为支持主域的SSL(我有.pem文件)。 https://example.com和http://example.com都可以正常访问。 端口8443已被其他服务使用( https://example.com:8443显示我Pleskpipe理面板)。 现在我想设置YouTrack使用https://youtrack.example.com 我怎样才能做到这一点? 我是否需要configurationTomcat以支持SSL(生成单独的密钥等),或者只是将来自Apache的请求代理到Tomcat? 我想第一步是将YouTrackconfiguration为https://example.com:8444/youtrack ,然后使用Apache的mod_proxy代理请求。 我怎样才能做到这一点? 我的/var/lib/tomcat7/conf/server.conf是默认的,没有任何改变: http : //pastie.org/9385045 我的/usr/share/tomcat7/bin/setenv.sh包含更改YouTrack默认URL的条目: -Djetbrains.youtrack.baseUrl=http://youtrack.example.com 虚拟主机configuration: $ cat /etc/apache2/sites-enabled/default <VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/default <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/default> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory […]
我认为我有这种sorting(主要是感谢如何将非wwwredirect到www而不使用.htaccess硬编码? ),但我仍然不完全了解一些事情。 我想强制所有非SSL连接到我的服务器路由到SSL。 我只有一个虚拟主机(在服务器的生命周期中,这种虚拟主机仍然是可靠的),但我想避免对域名进行硬编码,部分是为了使分段和生产的httpd.conf文件保持一致。 我知道我可以强制使用SSL的mod_rewrite规则的请求 RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 要么 RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 我有两个比较简单的问题, 我应该比其他任何理由更喜欢其中一个RewriteCond语句? 据推测,如果我使用%{SERVER_PORT}variables,端口8000上的任何连接都将继续在清除中服务。 是否有一些原因我应该避免使用我忽略的%{HTTPS}variables? RewriteRule语句中的%{HTTP_HOST}variables是否会受到尊重,并在请求的Host:标头中自动replace? 有什么情况下可能无法工作? 如果它有所作为,我们使用mod_ssl在RedHat上运行Apache 2,而站点使用Drupal 7。 对不起,什么是一个相对愚蠢的问题; Apache系统pipe理员绝不是我工作的核心部分,所以我尽可能地努力。 谢谢,所有!
在我的虚拟主机中,我有这样的东西: SSLEngine on SSLCertificateKeyFile /etc/apache2/ssl/svn.XXXXX.me.key SSLCertificateFile /etc/apache2/ssl/svn.XXXXX.me.crt SSLProtocol all SSLCipherSuite HIGH:MEDIUM SSLVerifyClient require SSLCACertificateFile /etc/ssl/certs/ICA-Standart.0 到目前为止,我可以使用由CA“ICA-Standart.0”颁发的任何证书login,但是我想指定一种白名单,只有一些证书可以login,这是可能的吗? 如果是这样,我应该看哪个指令? 另请注意,CA是一个公共证书颁发机构。
我最近购买了SSL证书。 证书的CommonName(CN)是www.mydomain.com ,有几个AlternativeNames,例如subdomain1.mydomain.com , subdomain2.mydomain.com等。 我已经使用Apache 2.2.17和mod_ssl在服务器上安装了它,并且一切正常,除非我得到一个警告: [warn] RSA server certificate CommonName (CN) `www.mydomain.com` does NOT match server name!? 这是因为ServerName被定义为subdomain1.mydomain.com 。 证书仍然有效,但有什么我可以做的,以消除警告? 或者我可以忽略它?
我知道在同一个IP上有很多关于多个SSL的post,但我保证我没有打死一匹死马。 我的问题很清楚。 首先,有一点背景… 我们的组织有几个电子商务网站。 所有这些站点都运行在相同的IP上,使用SNI作为基于名称的虚拟主机。 在大多数情况下,这是很好的工作。 但是,在某些浏览器(ie7 / ie8,但仅在某些原因的select机器上),我们得到报告,用户看到域名与SSL证书不匹配。 事实certificate,他们正在按照字母顺序看到第一个SSL主机的SSL证书,因为Apache首先parsingIP地址,然后抓住它认为合适的虚拟主机文件。 我做了一些SSL协议的实验,发现如果我这样设置(ssl.conf): SSLProtocol TLSv1 然后,我只是得到一个没有find任何在IE中的https域。 如果我在ports.conf中设置SSLStrictSNIVHostCheck SSLStrictSNIVHostCheck打开 然后我会得到在有问题的浏览器中被拒绝的权限。 问题很明显,IE不支持或不使用TLSv1协议或SNI,这两者都是需要的。 所以我的问题是… 是否有一个configuration更改,我可以支持IE浏览器,也许根据不同的协议,或者是我唯一的select使用单独的IP为每个虚拟主机需要SSL? 在此先感谢=)