我尝试使用与其关联的弹性IP在Let's Encrypt上生成一个SSL证书。 我运行的命令是 ./letsencrypt-auto certonly –standalone -d mariellaval.com -d www.mariellaval.com 浏览https://mariellaval.com的连接是私人的,但浏览https://www.mariellaval.com这不是因为证书的通用名称是弹性IP的DNS。 为什么?。 我究竟做错了什么? UPDATE 这是我的虚拟主机文件: <VirtualHost _default_:443> ServerName mariellaval.com:443 ServerAlias www.mariellaval.com:443 DocumentRoot /var/www/path/to/public SSLEngine on SSLCertificateFile path/to/cert.pem SSLCertificateKeyFile path/to/privkey.pem SSLProtocol all -SSLv2 -SSLv3 SSlCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA; SSLHonorCipherOrder on <Directory /var/www/path/to/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 在.htaccess我强制www,但我暂时禁用它找出证书问题。
我的意图是将所有请求redirect到https://前缀URL和裸地域以及www.*等效项。 acme-challengeurl将被排除在外。 我试着用下面的configuration,并从赤裸裸的域获得正确的redirect,但是当我访问www. 前缀一,我提供了默认的服务器,没有redirect到端口443服务器,并从https服务器根服务。 为什么是这样? server { listen 80; listen [::]:80; server_name example.org www.example.org; location '/.well-known/acme-challenge/' { root /var/www/challenges; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; server_name example.org www.example.org; ssl_certificate /etc/nginx/ssl/example.org.pem; ssl_certificate_key /etc/nginx/ssl/example.org.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA; ssl_session_cache shared:SSL:50m; ssl_dhparam /etc/nginx/ssl/dhparams.pem; […]
我想让我的Apache Web服务器只接受SSL连接,如果客户端呈现给自己一个特定的SSL客户端证书。 换句话说,只有一个客户端是允许的,它必须使用特定的客户端证书(我也有)。 这个客户端证书(我们称之为“MyClientCertificate”)是一个由CA发出的正常的PEM证书(我们称之为“MyCA”),我也有证书。 这就是我为此configuration了Apache虚拟主机(我仅报告与SSL客户端validation相关的选项): SSLVerifyClient require SSLCACertificatePath /etc/ssl/certs SSLCACertificateFile /etc/ssl/client/MyClientCertificate.pem SSLCADNRequestFile /etc/ssl/client/MyClientCertificate.pem SSLVerifyDepth 1 选项的解释(或者我的意图至less…): 与“SSLVerifyClient要求”我强制Apache始终执行客户端validation,并拒绝连接,如果它失败 / etc / ssl / certs包含MyCA的PEM证书(正确地安装在系统中,具有所需的散列+符号链接过程),只要所有其他知名CA的Apache可以识别 使用SSLCACertificateFile我将MyClientCertificate证书添加到/ etc / ssl / certs中的CA证书列表中,作为一个受信任的证书本身,以及SSLCADNRequestFile我说我的服务器应该只请求该证书(并且只有这个证书)到客户端,而不是SSLCACertificatePath + SSLCACertificateFile中的所有CA证书列表 与“SSLVerifyDepth 1”我说,允许的客户端证书是由服务器所识别的CA(在SSLCACertificatePath中)签名的, 这似乎工作:Apache要求客户端证书,拒绝连接,如果没有提供指定的客户端证书,并接受它,如果是。 然而,最近客户端(这是我的供应商)已经决定改变它的客户端证书,用一个新的(我们称之为MyNewClientCertificate.pem),用2048位encryption而不是旧的1024位深度。 问题是这样的: 供应商表示已更改其客户端证书,并且正在使用新证书进行身份validation 供应商肯定地说它只是提供新的证书,而不是新的和旧的证书 我还没有改变我的Apacheconfiguration(因此,我的Apache仍然被configuration为请求旧的证书) 但我的Apache正在接受供应商客户端连接没有任何问题! 我会期望它开始失败,直到我改变它的configuration,以取代MyClientCertificate.pem引用与MyNewClientCertificate.pem 新的证书由旧的证书发出。 供应商build议我的Apacheconfiguration可能会接受来自客户端的所有连接,这些客户端提供由该CA发出的证书,而不是在客户端证书本身上执行匹配。 如果是这样的话,我在configuration中做错了什么? 我应该将SSLVerifyDepth降低到0吗? (但是这不是说证书必须是自签名的吗?)还是我必须改变SSLCACertificateFile / SSLCADNRequestFile指令中的内容? 由于这个系统正在生产中,我不具备执行所有我能想到的testing的能力,但是我应该尽量做出有针对性的改变,以便尽快得到正确的结果。 这就是为什么我会很感激这个话题的任何帮助。
我们使用Nginx作为反向代理,并希望允许网站访问者从Azure Blob下载文件 server { listen 443; ssl_certificate /sslcert/ssl.crt; ssl_certificate_key /sslcert/com.key; server_name get.domain.com; location / { proxy_redirect off; proxy_pass http://oururl.blob.core.windows.net/; } 但是,HSTS不允许此请求,因为后端将显示具有不同通用名称的证书(?)。 即使HSTS被禁用,我们仍然会看到关于主机真实性的警告。 奇怪的是,我们正在使用proxy_pass作为本地后端,没有任何问题。 作品: /home/user# curl get.domain.com <?xml version="1.0" encoding="utf-8"?><Error><Code>InvalidQueryParameterValue</Code><Message>Value for one of the query parameters specified in the request URI is invalid. 不起作用: /home/user# curl https://get.domain.com curl: (51) SSL: no alternative certificate subject name […]
在我的工作中,我使用PHP 5在Apache webserver 2.4.6上安装了Mediawiki(最新版本)。当我想在本地访问wiki页面时,Everthing正常工作,我在Mediawiki中configuration了一个主机名 $wgServer = https://en.wiki.example.com. 现在,一旦我在Mediawik中清除了这个主机名configuration,那么它应该获取它获得web服务器的主机名。 发生这种情况,但主机名的格式是 http://en.wiki.example.com:443 这是一个不正确的URL(因为混合HTTP和HTTPS)。 我认为这是一个Apache的问题,因为当我尝试浏览 https://en.wiki.example.com/wiki 它redirect到 http://en.wiki.example.com:443/wiki/index.php/Main_Page 我得到一个错误的请求错误。 在wiki后面的斜杠没有任何影响。 虚拟主机: <VirtualHost *:443> ServerName https://en.wiki.example.com ServerAlias https://en.wiki.example.com en.wiki.external.com Alias /wiki /var/www/wiki-en ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log <Directory /var/www/wiki-en> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> SSL +默认的虚拟主机: Listen 443 https NameVirtualHost *:443 ## ## SSL Global […]
我有一个运行在Azure上的网站和一个wordpress网站。 从Azure文档中 ,他们所说的只是在web.config文件中复制和过滤示例 <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Force HTTPS" enabled="true"> <match url="(.*)" ignoreCase="false" /> <conditions> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration> 我复制这只是我现有的web.config文件中的规则部分。 但该网站没有甚至加载它给加载错误。 在那里我已经添加ssl,webiste运行在evercam.io和https://www.evercam.io 。 我需要的是当有人去为evercam.io或者它应该是HTTPS链接不简单的一个。 我运行的configuration文件是 <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpCompression directory="%SystemDrive%\inetpub\ temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/> […]
我有问题理解多米诺骨牌行为提供SSL或TLS出站连接到WebService。 我们有一个访问WebService的代理。 WebService只接受TLS 1.0 有时连接崩溃,我打开了DEBUG_SSL_ALL = 3看看发生了什么 我想通过服务器提供SSLV3.0而不是TLS1.0来连接失败,请参见05:45:58上的日志示例 服务器怎么突然这样做? 我在另一篇文章中读到,有时候会发生这种情况,因为“恢复”应该是一些要记住和连接更快的行为。 这听起来像是件好事,但在这种情况下,它并不是原因。 我有这个代理自己运行了几个小时,它突然改变了protocoll。 我们的服务器需要保持使用SSL的能力,因为其他原因所以我不能做DISABLE_SSLV3 = 1的时刻,接收服务器不能使用SSL。 这里是我的日志希望有一些帮助连接的开始是一样的,我看到它,是否有智能debugging语句,可以给我更多? Domino 9.0.1 FP4 [10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 0 Available cipherspec: 0x0035 [10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 1 Available cipherspec: 0x002F [10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 2 Available cipherspec: 0x000A [10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 3 Available cipherspec: 0x0005 […]
我有一个Web服务器,有两个域指向同一个文档根目录。 我有两个域的SSL证书。 我希望(几乎)所有进入站点的东西在SSL下运行。 所有的作品,但configuration我似乎过度和重复,我想知道我是否可以简化它? 我检查了这些答案: 在Apache , Apache中 设置SSL虚拟主机 :多个虚拟主机w / SSL证书? , https://www.howtoforge.com/hosting-multiple-ssl-web-sites-on-one-ip-address-with-apache-2.2-and-gnutls-debian-lenny虽然有用,但他们没有似乎相当处理这种情况。 我想知道是否有办法将configuration分解成可包含的文件? 我的ports.conf: NameVirtualHost *:80 NameVirtualHost *:443 Listen 80 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to <VirtualHost *:443> # Server Name Indication for SSL named virtual […]
我的一个客户想让我在他的服务器上升级openssl和Apache,因为他想从SSLLabs接收一个A. 我继续升级到Apache 2.4.18,并打开到1.0.2e版本。 然后我修改了Apache的SSLconfiguration以符合以下要求: # SSL Protocols/Ciphers SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256::kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK SSLCompression off 我从SSL实验室运行SSLtesting,但仍收到以下警告: 该服务器容易受到POODLE攻击。 如果可能的话,禁用SSL 3来缓解。 等级上限为C. 在协议列表中,即使上述语句声明应禁用SSL 3,也会显示YES。 我已经尝试了许多密码组合search在networking上,我总是得到相同的结果。 我也在任何* .conf文件中searchSSLconfiguration,但除了我上面的SSL文件没有。 该网站的url: https : //orders.expotools.biz SSL实验室: https : //www.ssllabs.com/ssltest/analyze.html? d = orders.expotools.biz
经过一番斗争,我已经设法configurationDovecot为用户login需要客户端证书,并且运行良好。 不过,我也想设置一个networking邮件解决scheme(Roundcube),它需要能够通过IMAP进行连接,但似乎无法发送客户端证书。 我将其configuration为使用端口143(未encryption),因为连接通过可信networking进行,考虑到这一点,我已将本地networking添加到Dovecot的login_trusted_networks以便明文validation也能正常工作。 不幸的是,当Roundcube连接时,即使连接没有启用SSL,它仍然被要求提供客户端证书。 我已经限制了客户端证书的要求,以避免与后缀使用下列问题: protocol !smtp { ssl_ca = </etc/dovecot/ca/dovecot-ca.pem ssl_verify_client_cert = yes ssl_cert_username_field = commonName auth_ssl_require_client_cert = yes auth_ssl_username_from_cert = yes } 然而,我不知道如何进一步限制只有encryption的连接? 我不允许远程访问未encryption的协议,除了端口25是在服务器之间发送电子邮件所必需的。 作为一个安全注意事项,保护IMAPS连接的相同证书也被nginx用于客户端authentication,所以webmail已经被证书限制了,虽然我可以换一些其他的第二层authentication来实现移动性(例如,因子API)。