我遇到了JIRA的SSL问题。我按照说明在Ubuntu上设置了Jira + SSL,但在访问http://domain.com:8443/
时收到空白文件在空白文件中,我可以看到这些
1503 0300 0202 0a
我不知道我能做什么,catalina日志不报告任何问题。
答案 0 :(得分:3)
您将在/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 "%m %U%q %H" %s %b %D "%{Referer}i" "%{User-Agent}i" "%{jira.request.assession.id}r""/>
</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"/>