如何将Apache Archiva设置为使用HTTPS而不是HTTP

如何将Apache Archiva设置为使用HTTPS而不是HTTP,https,archiva,Https,Archiva,在默认配置中,ApacheArciva2.2使用HTTP,不告诉如何将其更改为HTTPS 我认为这可以通过修改conf/jetty.xml文件来完成,但当我尝试这样做时,如中所述,它只会给我以下错误: java.lang.NoSuchMethodException: class org.eclipse.jetty.util.ssl.SslContextFactory.setTrustStorePath(class java.lang.String) 可以这样做吗?我使用Apache作为HTTP

在默认配置中,ApacheArciva2.2使用HTTP,不告诉如何将其更改为HTTPS

我认为这可以通过修改
conf/jetty.xml
文件来完成,但当我尝试这样做时,如中所述,它只会给我以下错误:

java.lang.NoSuchMethodException: class org.eclipse.jetty.util.ssl.SslContextFactory.setTrustStorePath(class java.lang.String)

可以这样做吗?

我使用Apache作为HTTPS代理,配置新的虚拟主机:

Listen 8081

<VirtualHost *:8081>
        ServerName archiva.example.com

        SSLEngine On
        SSLCertificateFile    /path/to/apache_certs/cert.pem
        SSLCertificateKeyFile /path/to/apache_certs/cert.key

        ProxyRequests     Off
        ProxyPass         /  http://localhost:8080/
        ProxyPassReverse  /  http://localhost:8080/
        <Proxy http://localhost:8080/*>
                Order allow,deny
                Allow from all
        </Proxy>
        ProxyPreserveHost on
</VirtualHost>
听8081
ServerName archiva.example.com
斯伦金安
SSLCertificateFile/path/to/apache_certs/cert.pem
SSLCertificateKeyFile/path/to/apache_certs/cert.key
代理请求关闭
ProxyPass/http://localhost:8080/
ProxyPassReverse/http://localhost:8080/
命令允许,拒绝
通融
代理主机

我将以下内容添加到
jetty.xml
中,它成功了:

<Call class="java.lang.System" name="setProperty"><Arg>jdk.tls.ephemeralDHKeySize</Arg><Arg>2048</Arg></Call>
<Call name="addConnector">
    <Arg>
        <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
            <Arg>
                <New class="org.eclipse.jetty.http.ssl.SslContextFactory">
                    <Set name="keyStore"><SystemProperty name="jetty.home" default="." />/conf/tomcat.keystore</Set>
                    <Set name="keyStorePassword">changeit</Set>
                    <Set name="ExcludeProtocols">
                        <Array type="java.lang.String">
                            <Item>SSLv3</Item>
                        </Array>
                    </Set>
                </New>
            </Arg>
            <Set name="port">8843</Set>
            <Set name="maxIdleTime">30000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="statsOn">false</Set>
            <Set name="lowResourcesConnections">5000</Set>
            <Set name="lowResourcesMaxIdleTime">5000</Set>
            <Set name="IncludeCipherSuites">
                <Array type="java.lang.String">
                    <Item>TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</Item>
                    <Item>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</Item>
                    <Item>TLS_DHE_RSA_WITH_AES_256_GCM_SHA384</Item>
                    <Item>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256</Item>
                    <Item>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384</Item>
                    <Item>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Item>
                    <Item>TLS_DHE_RSA_WITH_AES_256_CBC_SHA256</Item>
                    <Item>TLS_DHE_RSA_WITH_AES_128_CBC_SHA256</Item>
                    <Item>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA</Item>
                    <Item>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Item>
                    <Item>TLS_DHE_RSA_WITH_AES_256_CBC_SHA</Item>
                    <Item>TLS_DHE_RSA_WITH_AES_128_CBC_SHA</Item>
                </Array>
            </Set>
        </New>
    </Arg>
</Call>
jdk.tls.ephemeralDHKeySize2048
/conf/tomcat.keystore
换
SSLv3
8843
30000
2.
假的
5000
5000
TLS_ECDHE_RSA_与_AES_256_GCM_SHA384
TLS_ECDHE_RSA_与_AES_128_GCM_SHA256
TLS_DHE_RSA_与_AES_256_GCM_SHA384
TLS_DHE_RSA_,带AES_128_GCM_SHA256
TLS_ECDHE_RSA_与_AES_256_CBC_SHA384
TLS_ECDHE_RSA_与_AES_128_CBC_SHA256
TLS_DHE_RSA_与AES_256_CBC_SHA256
TLS_DHE_RSA_与AES_128_CBC_SHA256
TLS_ECDHE_RSA_与_AES_256_CBC_SHA
TLS_ECDHE_RSA_与_AES_128_CBC_SHA
TLS_DHE_RSA_与_AES_256_CBC_SHA
TLS_DHE_RSA_与_AES_128_CBC_SHA

I“我对Jetty不清楚可能Jetty文档不完整,或者我们使用的版本太旧。Perso我使用ApacheHttpD服务器代理对Archiva实例的请求,因此很容易管理https HTH。我还考虑使用Apache代理作为解决方案。当我弄明白的时候,我会尝试用正确的配置来写答案。