标签: https

无法让 SSL 与 Apache 一起工作

好的,所以我正在尝试将我的服务器配置为接受 SSL 连接,但我无法让它工作。我知道网站上有很多类似的问题,但到目前为止我遇到的每个问题似乎都没有帮助。

我会发布尽可能多的信息,希望能对您有所帮助。

我的 apache 版本是:2.2.14(在 Ubuntu 上运行)。下面的信息似乎表明 SSL 已配置且运行良好,但是当我尝试访问https://website.com 时,请求超时。

我通过 GoDaddy 获得了 SSL 证书,并按照流程生成了 .crt 文件。

我有以下文件:

/home/ubuntu/ssl/website.com.crt
/home/ubuntu/ssl/website.com.key
/home/ubuntu/ssl/gd_bundle.crt
Run Code Online (Sandbox Code Playgroud)

根据我的配置文件:

/etc/apache2/ports.conf

NameVirtualHost *:80
NameVirtualHost *:443
Listen 80
Listen 443
Run Code Online (Sandbox Code Playgroud)

/etc/apache2/sites-enabled/000-default-ssl

<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName website.com

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from …
Run Code Online (Sandbox Code Playgroud)

ubuntu ssl https apache-2.2

2
推荐指数
1
解决办法
6893
查看次数

通过端口 443 连接到 HTTP URL

是否可以通过端口 443连接到 HTTP URL(例如,http://www.asdfg.com)?

还是只有 HTTPS URL(例如https://www.asdfg.com)可以通过端口 443 连接?

我有一个代理服务器配置为仅允许通过端口 443。当我尝试连接到 HTTP URL 时,我得到一个504 Gateway Timeout error.

如果我将 URL 中的“http”更改为“https”并尝试在没有代理的情况下进行连接,则会收到消息“未找到请求的资源”。

这种行为的原因是什么?

(这里有很多类似的问题,但我的问题很直接。)

http https port port-443

2
推荐指数
1
解决办法
4万
查看次数

将 https 指向不同的服务器然后指向 http?

让我用一个例子来解释我的问题:

我想指出网址:

    https://www.example.com to Server A (IP aaa.bbb.ccc.ddd)
Run Code Online (Sandbox Code Playgroud)

    http://www.example.com to Server B (IP eee.fff.ggg.hhh)
Run Code Online (Sandbox Code Playgroud)

那可能吗?如果是,你如何做到这一点?你如何为此设置DNS?

(我在 apache 上,带 cpanel)

谢谢

https apache-2.2

2
推荐指数
1
解决办法
713
查看次数

HTTP 客户端 -&gt; [代理] -&gt; HTTPS 服务器。可能的?

有可能有这样的东西吗?:

[客户端] ----HTTP--- > [魔术] ----HTTPS----> [服务器]

我有一个 Windows Phone 客户端,它应该连接到我无法控制的 HTTPS 服务器。问题是,测试服务器使用的是自签名证书,而 Windows Phone 不允许连接到证书未由受信任的根证书颁发机构签名的站点。

那么是否有可能让某个软件([Magic])充当客户端的 HTTP 端点,然后它会透明地将请求转发到 HTTPS 服务器?

我听说 ISA 服务器会这样做,但最好使用轻量级解决方案。

http proxy https

2
推荐指数
1
解决办法
351
查看次数

Ubuntu 12.04 和 12.10 没有新的 Thawte 中间证书?

我最近将我的网站 SSL 证书换成了新的 Thawte 2048 位证书。

Ubuntu/libcurl 似乎无法验证它。Web 浏览器和 OSX 很好。

我必须从这里手动更新操作系统上的证书包:

https://search.thawte.com/support/ssl-digital-certificates/index?page=content&actp=CROSSLINK&id=AR1374

任何想法为什么 Ubuntu 没有这些?

谢谢

标记

ubuntu ssl https curl

2
推荐指数
1
解决办法
248
查看次数

nginx 只将特定的服务器名重写为 https

这是关于两个子域。第一个 (www) 应该通过 http 访问。第二个(云)应该通过 https 访问。

这些是我的条目的相关部分:

server {
        listen 80;
        server_name cloud.example.de;
        rewrite ^ https://$server_name$request_uri? permanent;  # enforce https
}

server {
        listen 443 ssl;
        server_name cloud.example.de;
        root /home/user/web/cloud;
}

server {
        listen 80;
        server_name www.example.de;
        root /home/user/web/cms;

        #etc.
}
Run Code Online (Sandbox Code Playgroud)

当我现在调用http://cloud.example.de 时,我被重定向到https://cloud.example.de,很好。但是当我调用http://www.example.de 时,我也被重定向到https://www.example.de,这会将我带到 cloud.example.com 的内容,因为这是唯一设置为的服务器名称由端口 443 使用

。 www 子域的访问日志中没有条目。
还有另一个指向 phpPgAdmin 的子域。我可以正常访问它,它不会被重写。

server {
        listen 80;
        server_name pgsql.example.de;
        root /home/user/web/phppgadmin;

        #etc
}
Run Code Online (Sandbox Code Playgroud)

有什么不见了?仅当服务器名称匹配 cloud.example.de 时才应进行重写
服务器条目的顺序是否相关或无关紧要?


在 …

rewrite nginx https ubuntu-11.04

2
推荐指数
1
解决办法
2万
查看次数

尝试访问 HTTPS URL 时 Domino 9 中的 Java CertificateException

当我们将 Domino 开发服务器从 8.5.3 升级到 9 时,从 Java 代码到具有GoDaddy证书的站点的 HTTPS 连接停止工作。与具有DigiCert证书的服务器的连接工作正常。这发生在代理和 XPage 中。

这是一个 XPage 示例代码:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.beforePageLoad>
             <![CDATA[#{javascript:new java.net.URL("https://www.sslshopper.com/").openStream();]]>
    </xp:this.beforePageLoad>
</xp:view>
Run Code Online (Sandbox Code Playgroud)

我也试过UrlConnection。这是例外:

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: 3659
    com.ibm.jsse2.o.a(o.java:15)
    com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:460)
    com.ibm.jsse2.kb.a(kb.java:294)
    com.ibm.jsse2.kb.a(kb.java:533)
    com.ibm.jsse2.lb.a(lb.java:55)
    com.ibm.jsse2.lb.a(lb.java:581)
    com.ibm.jsse2.kb.s(kb.java:11)
    com.ibm.jsse2.kb.a(kb.java:394)
    com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:44)
    com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:496)
    com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:528)
    com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:505)
    com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:83)
    com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:31)
    sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1184)
    com.ibm.net.ssl.www2.protocol.https.b.getInputStream(b.java:40)
    java.net.URL.openStream(URL.java:1022)
Run Code Online (Sandbox Code Playgroud)

...

java.security.cert.CertificateException: 3659
com.ibm.domino.napi.ssl.DominoX509TrustManager.checkServerTrusted(DominoX509TrustManager.java:98)
    com.ibm.jsse2.lb.a(lb.java:468)
    com.ibm.jsse2.lb.a(lb.java:581)
    com.ibm.jsse2.kb.s(kb.java:11)
    com.ibm.jsse2.kb.a(kb.java:394)
    com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:44)
    com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:496)
    com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:528)
    com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:505)
    com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:83)
    com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:31)
    sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1184)
    com.ibm.net.ssl.www2.protocol.https.b.getInputStream(b.java:40)
    java.net.URL.openStream(URL.java:1022)
Run Code Online (Sandbox Code Playgroud)

我根据以下说明将 GoDaddy 证书导入到 domino_path\jvm\lib\security\cacerts 密钥库:

http://drcs.ca/blog/adding-godaddy-intermediate-certificates-to-java-jdk/

但这并没有帮助,我还导入了gd-class2-root.crt 却没有结果。我还尝试重命名 …

java https ssl-certificate ibm-domino

2
推荐指数
1
解决办法
6906
查看次数

Curl 无法检索 HTTPS 内容

我在 Debian 6 上运行的生产服务器出现问题(apt-get update;apt-get upgrade 成功完成)。

当我调用 HTTPS (StartSSL) 服务器时,我在 Debian 6 上收到一条错误消息:

#> curl --version
curl 7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6
Protocols: dict file ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

#> curl https://mydomain.com/api/
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
Run Code Online (Sandbox Code Playgroud)

但是当我在 Debian 7 …

debian https curl

2
推荐指数
1
解决办法
2339
查看次数

使用 ssl (https) 监控

我最近安装了 monit(在 debian 上)并且一切正常。现在我想启用 ssl 支持。我做了我在文档中找到的内容:

set httpd port 2812
  ssl enable
  pemfile /etc/ssl/certs/ssl-cert-snakeoil.pem
Run Code Online (Sandbox Code Playgroud)

现在,我不仅无法使用https://myserver.com:2812通过 Web 访问服务器,而且 monit 守护程序和 monit 命令之间的通信也失败了:

$# monit status
monit: Openssl read timeout error!
monit: error connecting to the monit daemon
Run Code Online (Sandbox Code Playgroud)

ssl debian https monit

2
推荐指数
1
解决办法
4729
查看次数

管理通配符的服务器证书

我有一个通配符证书*.example.com(由 GeoTrust 签名),并将在不同的服务器上托管大量应用程序实例,每个实例都在我的子域上。

我不愿意将我的 OpenSSL 私钥复制给每个客户。如何使用我的证书为各个子域创建子证书而不共享我的证书?

ssl https privacy openssl private-key

2
推荐指数
1
解决办法
975
查看次数