在SSL上访问JIRA时获取空白文件

时间:2015-04-25 16:03:12

标签: tomcat ssl jira

我遇到了JIRA的SSL问题。我按照说明在Ubuntu上设置了Jira + SSL,但在访问http://domain.com:8443/

时收到空白文件

在空白文件中,我可以看到这些

  

1503 0300 0202 0a

我不知道我能做什么,catalina日志不报告任何问题。

2 个答案:

答案 0 :(得分:3)

如何添加SSL证书以保护JIRA安装:

假设:

  1. JIRA在端口8080或Linux Machine
  2. 上的其他一些开放端口上运行
  3. JIRA使用的是tomcat服务器,与Apache HTTP Server无关,
  4. 在生成CSR和密钥后,您已经拥有有效的CA签名根证书和证书链。
  5. 在Apache HTTP Server配置中未启用反向代理设置
  6. 您将在/conf/server.xml中看到一些类似的配置

    <Service name="Catalina">
        <!-- HTTP Connector with values for scheme, proxyName and proxyPort -->
        <Connector port="8080"
                   acceptCount="100"
                   scheme="http"
                   maxThreads="150"
                   minSpareThreads="25"
                   connectionTimeout="20000"
                   enableLookups="false"
                   maxHttpHeaderSize="8192"
                   protocol="HTTP/1.1"
                   useBodyEncodingForURI="true"
                   disableUploadTimeout="true"/>
        <Engine name="Catalina" defaultHost="localhost">
            <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
                <Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
                    <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
                              factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
                    <Manager pathname=""/>
                </Context>
    
            </Host>
    
            <Valve className="org.apache.catalina.valves.AccessLogValve"
                   pattern="%a %{jira.request.id}r %{jira.request.username}r %t &quot;%m %U%q %H&quot; %s %b %D &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot; &quot;%{jira.request.assession.id}r&quot;"/>
    
        </Engine>
    </Service>
    

    要添加SSL证书,首先需要使用keytool java可执行文件将密钥和根证书包含在单个实体中。这存在于/ bin /文件夹中。

    如果您使用keytool导入没有密钥的根证书或链证书,这里需要注意的主要事项是,浏览器可能会提供SSL重叠或一些不同的SSL相关错误。所以第一个要求是 使用域密钥导入证书。

    我们还需要将密钥和根.crt文件转换为pkcs12兼容,以便java keytool可以以自己的格式读取它。否则,您将再次在浏览器上遇到SSL错误。

    现在在Linux机上使用openssl以pkcs格式组合密钥和证书,假设你在/ bin /文件夹中。

    root @ mail bin]# openssl pkcs12 -export -in /opt/certificate_store/root.crt -inkey /home/certificate_store/domain.key -out server.p12 -name jira_alias -CAfile /home/certificate/gd_bundle.crt -caname root

    输入导出密码:

    验证 - 输入导出密码:

    此命令将创建一个文件server.p12(你可以给它任何名字)。不要忘记别名(U可以给出任何别名,这是一个标识符,用于从列表中获取有关certifcate的信息,如果有的话)

    [root @ mail bin] #ls

    java jjs keytool orbd pack200 policytool rmid rmiregistry server.p12 servertool tnameserv unpack200

    现在使用keytool将其转换为java可读

    [root @ mail bin] #keytool -importkeystore -deststorepass -destkeypass -destkeystore server.keystore -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass -alias jira_aliased

    (对于对称性,U可以在每个地方尝试相同的密码,此密码需要在server.xml中进一步提供)

    上面的命令将使用给定的选项

    创建一个文件server.keystore

    [root @ mail bin] #ls

    java jjs keytool orbd pack200 policytool rmid rmiregistry server.keystore server.p12 servertool tnameserv unpack20

    现在您的证书密钥库已准备好保护JIRA。

    打开/conf/server.xml并在旧连接器之后添加以下新连接器

        <!-- Standard HTTPS Connector  -->
        <Connector
                acceptCount="100"
                SSLEnabled="true"
                connectionTimeout="20000"
                disableUploadTimeout="true"
                enableLookups="false"
                maxHttpHeaderSize="8192"
                maxThreads="150"
                minSpareThreads="25"
                maxSpareThreads="75"
                port="<PORT_NUMBER_ON_WHICH_YOU_WANT_TO_RUN_JIRA_ON_SSL>"
                protocol="org.apache.coyote.http11.Http11NioProtocol"
                scheme="https"
                secure="true"
                clientAuth="false"
                keystoreType="JKS"
                keystoreFile="/opt/atlassian/jira/jre/bin/server.keystore"
                keystorePass="same password here that you had given in keytool"
                useBodyEncodingForURI="true"/>
    

    注释掉旧的HTTP连接器,立即保存server.xml文件并重新启动jira。在指定的端口号上打开您的jira站点,例如:http(s)://domain.com:,检查其工作与否。 或者在Linux控制台上,您可以尝试以下命令来检查SSL是否在该端口上工作。

    $ openssl s_client -connect localhost:

    它将生成所有证书链,如果正常工作,否则将不会显示任何证书,并且将引发错误。

    如果您仍想在HTTP和HTTPS上访问JIRA,请打开server.xml文件,取消注释旧的HTTP连接器并将转发器从HTTP转发到HTTPS。假设您的HTTP连接器正在侦听8080并且HTTPS连接器正在侦听 在端口号9000上,那么您的server.xml连接器应如下所示。

        <!-- HTTP Connector with values for scheme, proxyName and proxyPort -->
        <!--<Connector port="8080"
                   acceptCount="100"
                   scheme="http"
                   maxThreads="150"
                   minSpareThreads="25"
                   connectionTimeout="20000"
                   enableLookups="false"
                   maxHttpHeaderSize="8192"
                   protocol="HTTP/1.1"
                   useBodyEncodingForURI="true"
                   redirectPort="9000"
                   disableUploadTimeout="true"/>-->
    
        <!-- Standard HTTPS Connector  -->
        <Connector
                acceptCount="100"
                SSLEnabled="true"
                connectionTimeout="20000"
                disableUploadTimeout="true"
                enableLookups="false"
                maxHttpHeaderSize="8192"
                maxThreads="150"
                minSpareThreads="25"
                maxSpareThreads="75"
                port="9000"
                protocol="org.apache.coyote.http11.Http11NioProtocol"
                scheme="https"
                secure="true"
                clientAuth="false"
                keystoreType="JKS"
                keystoreFile="/opt/atlassian/jira/jre/bin/server.keystore"
                keystorePass="<PASSWORD_HERE>"
                useBodyEncodingForURI="true"/>
    

    享受SSL !!

    不要忘记在/atlassian-jira/WEB-INF/web.xml中添加以下行

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>all-except-attachments</web-resource-name>
            <url-pattern>*.jsp</url-pattern>
            <url-pattern>*.jspa</url-pattern>
            <url-pattern>/browse/*</url-pattern>
            <url-pattern>/issues/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    

答案 1 :(得分:1)

关注https://confluence.atlassian.com/display/JIRA/Running+JIRA+over+SSL+or+HTTPS

在/conf/server.xml中,我删除了&#34; keyAlias =&#34; jira&#34;。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
     maxHttpHeaderSize="8192" SSLEnabled="true"
     maxThreads="150" minSpareThreads="25"
     enableLookups="false" disableUploadTimeout="true"
     acceptCount="100" scheme="https" secure="true"
     clientAuth="false" sslProtocol="TLS" useBodyEncodingForURI="true"
     keyAlias="jira" keystoreFile="<JIRA_HOME>/jira.jks" keystorePass="changeit" keystoreType="JKS"/>