请使用CertBot, 解决你的全部麻烦。且不花钱。
https://certbot.eff.org/
一般来说, 只需要在nginx上配置https, tomcat还是走http这样效率高且灵活。
nginx上用proxy, 加上
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port; ## for grails app
tomcat在server.xml的<Host>
配置项里加上
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>