<p>I got yaml file for specifying ssl certificate (provided by aws certificate manager)to load balancer for kubernetes deployment. But, we are running kubernetes cluster in aws china account where certification manager option is not available. Now if I have SSL certificate provided by Godaddy, how can I install it? Is any other alternative ways to install certificate rather than load balancer? Can I install it in my tomcat container itself and build new image with it? </p>

<p>As far as I know, you cannot setup an ELB deployed with a kubernetes <code>Service</code> to use a certificate which is NOT an ACM certificate. In fact, if you take a look at the possibile annotations <a href="https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/aws/aws.go#L72" rel="nofollow noreferrer">here</a> you'll see that the only annotation available to select a certificate is <code>service.beta.kubernetes.io/aws-load-balancer-ssl-cert</code> and the documentation for that annotation says the following:</p>

<pre><code>ServiceAnnotationLoadBalancerCertificate is the annotation used on the
service to request a secure listener. Value is a valid certificate ARN.
For more, see http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-listener-config.html
CertARN is an IAM or CM certificate ARN, e.g. arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
</code></pre>

<p>As you ask, you can for sure terminate your ssl inside your kubernetes Pod and make the ELB a simple TCP proxy.</p>

<p>In order to do so, you need to add the following annotation to your <code>Service</code> manifest:</p>

<pre><code>service.beta.kubernetes.io/aws-load-balancer-backend-protocol: 'tcp'
</code></pre>

<p>Also, you will need to forward both your http and https ports in order to handle http to https redirect correctly inside you pod.</p>

<p>If you need more specific help, please post you current manifest.</p>
