Repository: chef/automate
Pull request #8022 (2023-07-03 15:13:52)

Make chef server and automate lb root certificate optional in Verify service
### :nut_and_bolt: Description: What code changed, and why?

<!-- /!\ Please ensure that you are NOT disclosing any customer information without their consent /!\ -->

### :chains: Related Resources
https://chefio.atlassian.net/browse/CHEF-3883

### :+1: Definition of Done

### :athletic_shoe: How to Build and Test the Change

### :white_check_mark: Checklist

**All PRs** must tick these:

- [x] I have read the [CONTRIBUTING document](https://github.com/chef/automate/blob/master/CONTRIBUTING.md).
- [x] All commits signed-off for the [Developer Certification of Origin](https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco).

With occasional exceptions, all PRs **from Progress employees** must tick these:

- [x] Is the code clear? *(complicated code or lots of comments--subdivide and use well-named methods, meaningful variable names, etc.)*
- [x] Consistency checked? *(user notifications, user prompts, visual patterns, code patterns, variable names)*
- [x] Repeated code blocks eliminated? *(adapt and reuse existing components, blocks, functions, etc.)*
- [x] Spelling, grammar, typos checked? *(at a minimum use `make spell` in any component directory)*
- [x] Code well-formatted? *(indents, line breaks, etc. improve rather than hinder readability)*

All PRs **from Progress employees** should tick these if appropriate:

- [x] Tests added/updated? (all new code needs new tests)
- [ ] Docs added/updated? (all customer-facing changes)

*Please add a note next to any checkbox above if you are NOT ticking it.*

### :camera: Screenshots, if applicable
Onprem - Pre Deployment(CS details not given):
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/EfOQ22H00JRMnA8iviOd7jEBaHesIxNdH0U_TE3uSMzNkQ?e=hMuSCC 

Onprem - Pre Deployment (A2 and CS fqdn is given but root_ca is not given for both A2 and CS):
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/EZtwBgI0VAVOssfNIpOpkuYBcSeT6lxFG7dvY5eZXdF0OA?e=Sexb4V

Onprem - Pre Deployment (A2 and CS Fqdn given along with their root-ca):
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/EQS-g97bjKhCowvg6TAbp9oBVRh4x4FsLhUKSYrjXjCa5w?e=2Eb7CY

Onprem - Post Deployment:
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/Ea48TaRRum1Dl23yaWJpAKQBk1JxxUpX8Q_pFR5ScNsgkg?e=6idu6G

AWS - Pre Deployment (CS details not given):
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/EcaLdYghNrFIq4U9I0_HA98Bo28HjjqxyVTxX1MXc30cbQ?e=kxrTUl

AWS - Pre Deployment (A2 and CS fqdn is given but root_ca is not given for both A2 and CS):
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/ESALAnoXF8xAoawbvsyZ5aYBp5vI-NtUmU_PAFjA9OUkFQ?e=LeoFEL

AWS - Pre Deployment (A2 and CS Fqdn given along with their root-ca):
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/EYpIdUMUef9DiMbxiv7ivDUBMPXmqvZPkwVyvN-5HCLwtg?e=De3mwH

AWS - Post Deployment:
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/EX905WHYXr1FqD7vu1AxawYBL1E8vXL4bLVUljLy0GubbA?e=gbxfSd

AWS - Pre Deployment (EFS Fix):
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/EZCD38f1B-NLt2X9JSIo7ukBgaXoATxQNhZHLVHhcgxKnw?e=Oaonad

AWS - Post Deployment (EFS):
https://progresssoftware-my.sharepoint.com/:v:/g/personal/ssanju_progress_com/ETduWFIBuOlJll3a6AUdHuQB7r32Iuo5D9Ot-Z9uHBkBTw?e=jOUWKL

sonarqube-for-infrastructure-prod[bot]: **SonarQube Quality Gate**

[![Quality Gate failed](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022)

[![Failed condition](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/FailedConditionIcon-16px.png 'Failed condition')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) [![B](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/RatingBadge/B-16px.png 'B')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) Maintainability Rating on New Code (is worse than A)  
[![Failed condition](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/FailedConditionIcon-16px.png 'Failed condition')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) [![17.4%](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/CoverageChart/0-16px.png '17.4%')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) 17.4% Coverage on New Code (is less than 80%)  

[See analysis details on SonarQube](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022)

Fix issues before they fail your Quality Gate with [![SonarLint](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/common/sonarlint-16px.png 'SonarLint')](https://www.sonarqube.org/sonarlint/?referrer=pull-request) [SonarLint in your IDE](https://www.sonarqube.org/sonarlint/?referrer=pull-request).
sonarqube-for-infrastructure-prod[bot]: **SonarQube Quality Gate**

[![Quality Gate failed](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022)

[![Failed condition](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/FailedConditionIcon-16px.png 'Failed condition')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) [![B](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/RatingBadge/B-16px.png 'B')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) Maintainability Rating on New Code (is worse than A)  
[![Failed condition](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/FailedConditionIcon-16px.png 'Failed condition')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) [![47.5%](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/CoverageChart/40-16px.png '47.5%')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) 47.5% Coverage on New Code (is less than 80%)  

[See analysis details on SonarQube](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022)

Fix issues before they fail your Quality Gate with [![SonarLint](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/common/sonarlint-16px.png 'SonarLint')](https://www.sonarqube.org/sonarlint/?referrer=pull-request) [SonarLint in your IDE](https://www.sonarqube.org/sonarlint/?referrer=pull-request).
sonarqube-for-infrastructure-prod[bot]: **SonarQube Quality Gate**

[![Quality Gate failed](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022)

[![Failed condition](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/FailedConditionIcon-16px.png 'Failed condition')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) [![B](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/RatingBadge/B-16px.png 'B')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) Maintainability Rating on New Code (is worse than A)  
[![Failed condition](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/FailedConditionIcon-16px.png 'Failed condition')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) [![46.3%](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/checks/CoverageChart/40-16px.png '46.3%')](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022) 46.3% Coverage on New Code (is less than 80%)  

[See analysis details on SonarQube](https://sonar.progress.com/dashboard?id=chef_automate_AYeOVEbqJ4YHsO5MtKWC&pullRequest=8022)

Fix issues before they fail your Quality Gate with [![SonarLint](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v97/common/sonarlint-16px.png 'SonarLint')](https://www.sonarqube.org/sonarlint/?referrer=pull-request) [SonarLint in your IDE](https://www.sonarqube.org/sonarlint/?referrer=pull-request).

Patch:
diff --git a/VERSION b/VERSION
index 3f5dd3922..6b8309291 100644
--- a/VERSION
+++ b/VERSION
@@ -1,1 +1,1 @@
-4.7.150
\ No newline at end of file
+4.7.154
\ No newline at end of file
diff --git a/api/config/esgateway/config_request.pb.go b/api/config/esgateway/config_request.pb.go
index 3d521ef77..54647a9b5 100644
--- a/api/config/esgateway/config_request.pb.go
+++ b/api/config/esgateway/config_request.pb.go
@@ -720,6 +720,7 @@ type ConfigRequest_V1_System_Nginx_Http struct {
 	ProxySendTimeout          *wrapperspb.Int32Value  `protobuf:"bytes,19,opt,name=proxy_send_timeout,json=proxySendTimeout,proto3" json:"proxy_send_timeout,omitempty" toml:"proxy_send_timeout,omitempty" mapstructure:"proxy_send_timeout,omitempty"`
 	ProxySetHeaderHost        *wrapperspb.StringValue `protobuf:"bytes,20,opt,name=proxy_set_header_host,json=proxySetHeaderHost,proto3" json:"proxy_set_header_host,omitempty" toml:"proxy_set_header_host,omitempty" mapstructure:"proxy_set_header_host,omitempty"`
 	ProxySslVerify            *wrapperspb.StringValue `protobuf:"bytes,21,opt,name=proxy_ssl_verify,json=proxySslVerify,proto3" json:"proxy_ssl_verify,omitempty" toml:"proxy_ssl_verify,omitempty" mapstructure:"proxy_ssl_verify,omitempty"`
+	ProxySslServerName        *wrapperspb.BoolValue   `protobuf:"bytes,22,opt,name=proxy_ssl_server_name,json=proxySslServerName,proto3" json:"proxy_ssl_server_name,omitempty" toml:"proxy_ssl_server_name,omitempty" mapstructure:"proxy_ssl_server_name,omitempty"`
 }
 
 func (x *ConfigRequest_V1_System_Nginx_Http) Reset() {
@@ -894,6 +895,13 @@ func (x *ConfigRequest_V1_System_Nginx_Http) GetProxySslVerify() *wrapperspb.Str
 	return nil
 }
 
+func (x *ConfigRequest_V1_System_Nginx_Http) GetProxySslServerName() *wrapperspb.BoolValue {
+	if x != nil {
+		return x.ProxySslServerName
+	}
+	return nil
+}
+
 type ConfigRequest_V1_System_Nginx_Main_Resolvers struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -973,13 +981,13 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{
 	0x61, 0x70, 0x69, 0x2f, 0x61, 0x32, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
 	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f,
 	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x1f, 0x0a,
+	0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x1f, 0x0a,
 	0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f,
 	0x0a, 0x02, 0x76, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x65,
 	0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61,
 	0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
 	0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x52, 0x02, 0x76, 0x31, 0x1a,
-	0x99, 0x1e, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x48, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20,
+	0xe8, 0x1e, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x48, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20,
 	0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d,
 	0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65,
 	0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
@@ -988,7 +996,7 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{
 	0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e,
 	0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f,
 	0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x03, 0x73, 0x76, 0x63, 0x1a, 0xf2, 0x1c, 0x0a, 0x06,
+	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x03, 0x73, 0x76, 0x63, 0x1a, 0xc1, 0x1d, 0x0a, 0x06,
 	0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x34, 0x0a, 0x04, 0x6d, 0x6c, 0x73, 0x61, 0x18, 0x01,
 	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f,
 	0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
@@ -1030,7 +1038,7 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{
 	0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
 	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
 	0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65,
-	0x6c, 0x1a, 0xf2, 0x11, 0x0a, 0x05, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x12, 0x55, 0x0a, 0x04, 0x6d,
+	0x6c, 0x1a, 0xc1, 0x12, 0x0a, 0x05, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x12, 0x55, 0x0a, 0x04, 0x6d,
 	0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x63, 0x68, 0x65, 0x66,
 	0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e,
 	0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
@@ -1083,7 +1091,7 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{
 	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f,
 	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e,
 	0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72,
-	0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x98, 0x0b, 0x0a, 0x04,
+	0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xe7, 0x0b, 0x0a, 0x04,
 	0x48, 0x74, 0x74, 0x70, 0x12, 0x4d, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d,
 	0x61, 0x78, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01,
 	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
@@ -1173,59 +1181,64 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{
 	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
 	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
 	0x52, 0x0e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x73, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79,
-	0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x1a, 0xb7, 0x04, 0x0a, 0x08, 0x45, 0x78, 0x74, 0x65, 0x72,
-	0x6e, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
-	0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x73, 0x6c, 0x5f, 0x75,
-	0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
-	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
-	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x73, 0x6c, 0x55, 0x70,
-	0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69,
-	0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69,
-	0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
-	0x74, 0x73, 0x12, 0x52, 0x0a, 0x16, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68,
-	0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x52, 0x14, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x43, 0x72, 0x65, 0x64, 0x65,
-	0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63,
-	0x65, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69,
-	0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72,
-	0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
-	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
-	0x12, 0x42, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69,
-	0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+	0x12, 0x4d, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x73, 0x6c, 0x5f, 0x73, 0x65,
+	0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+	0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x70, 0x72, 0x6f,
+	0x78, 0x79, 0x53, 0x73, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x4a,
+	0x04, 0x08, 0x0e, 0x10, 0x0f, 0x1a, 0xb7, 0x04, 0x0a, 0x08, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
+	0x61, 0x6c, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06,
+	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x73, 0x6c, 0x5f, 0x75, 0x70,
+	0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
+	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42,
+	0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x73, 0x6c, 0x55, 0x70, 0x73,
+	0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
+	0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
+	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
+	0x73, 0x12, 0x52, 0x0a, 0x16, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f,
+	0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+	0x14, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e,
+	0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x65,
+	0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
 	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
-	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74,
-	0x46, 0x69, 0x6c, 0x65, 0x12, 0x6a, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x65,
-	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f,
-	0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69,
-	0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e,
-	0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52,
-	0x0f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73,
-	0x1a, 0xad, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a,
-	0x09, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x69, 0x73,
-	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
-	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74,
+	0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61,
+	0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+	0x42, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6c,
+	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
 	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x30,
-	0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
-	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
-	0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74,
-	0x1a, 0x09, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x19, 0xc2, 0xf3, 0x18,
-	0x15, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2d, 0x65, 0x73, 0x2d, 0x67,
-	0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
-	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61,
-	0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x73,
-	0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, 0x46,
+	0x69, 0x6c, 0x65, 0x12, 0x6a, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x6e,
+	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e,
+	0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e,
+	0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f,
+	0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53,
+	0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0f,
+	0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a,
+	0xad, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x09,
+	0x69, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+	0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x69, 0x73, 0x44,
+	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56,
+	0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x30, 0x0a,
+	0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
+	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74,
+	0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x1a,
+	0x09, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x19, 0xc2, 0xf3, 0x18, 0x15,
+	0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2d, 0x65, 0x73, 0x2d, 0x67, 0x61,
+	0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+	0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74,
+	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x73, 0x67,
+	0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -1312,14 +1325,15 @@ var file_config_esgateway_config_request_proto_depIdxs = []int32{
 	16, // 47: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_send_timeout:type_name -> google.protobuf.Int32Value
 	15, // 48: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_set_header_host:type_name -> google.protobuf.StringValue
 	15, // 49: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_ssl_verify:type_name -> google.protobuf.StringValue
-	17, // 50: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.enable_system_nameservers:type_name -> google.protobuf.BoolValue
-	15, // 51: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.nameservers:type_name -> google.protobuf.StringValue
-	15, // 52: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.nameservers_string:type_name -> google.protobuf.StringValue
-	53, // [53:53] is the sub-list for method output_type
-	53, // [53:53] is the sub-list for method input_type
-	53, // [53:53] is the sub-list for extension type_name
-	53, // [53:53] is the sub-list for extension extendee
-	0,  // [0:53] is the sub-list for field type_name
+	17, // 50: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_ssl_server_name:type_name -> google.protobuf.BoolValue
+	17, // 51: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.enable_system_nameservers:type_name -> google.protobuf.BoolValue
+	15, // 52: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.nameservers:type_name -> google.protobuf.StringValue
+	15, // 53: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.nameservers_string:type_name -> google.protobuf.StringValue
+	54, // [54:54] is the sub-list for method output_type
+	54, // [54:54] is the sub-list for method input_type
+	54, // [54:54] is the sub-list for extension type_name
+	54, // [54:54] is the sub-list for extension extendee
+	0,  // [0:54] is the sub-list for field type_name
 }
 
 func init() { file_config_esgateway_config_request_proto_init() }
diff --git a/api/config/esgateway/config_request.proto b/api/config/esgateway/config_request.proto
index faf831620..0b89fcfe7 100644
--- a/api/config/esgateway/config_request.proto
+++ b/api/config/esgateway/config_request.proto
@@ -80,6 +80,7 @@ message ConfigRequest {
 					google.protobuf.Int32Value proxy_send_timeout = 19;
 					google.protobuf.StringValue proxy_set_header_host = 20;
 					google.protobuf.StringValue proxy_ssl_verify = 21;
+					google.protobuf.BoolValue proxy_ssl_server_name = 22;
 
 				}
 
diff --git a/components/automate-cli/cmd/chef-automate/deployedConfig.go b/components/automate-cli/cmd/chef-automate/deployedConfig.go
index ce04b5efa..95005e18c 100644
--- a/components/automate-cli/cmd/chef-automate/deployedConfig.go
+++ b/components/automate-cli/cmd/chef-automate/deployedConfig.go
@@ -99,6 +99,8 @@ func CopyExistingInfra(existingInfraConfig *ExistingInfraConfigToml) *config.HaD
 		},
 		ChefServer: &config.ChefServerSettings{
 			Config: &config.ConfigChefServerSettings{
+				ChefServerFqdn:    existingInfraChefServerSettings.Fqdn,
+				FqdnRootCA:        existingInfraChefServerSettings.RootCA,
 				EnableCustomCerts: existingInfraChefServerSettings.EnableCustomCerts,
 				InstanceCount:     existingInfraChefServerSettings.InstanceCount,
 				PrivateKey:        existingInfraChefServerSettings.PrivateKey,
@@ -227,6 +229,8 @@ func CopyAws(awsConfig *AwsConfigToml) *config.HaDeployConfig {
 		},
 		ChefServer: &config.ChefServerSettings{
 			Config: &config.ConfigChefServerSettings{
+				ChefServerFqdn:    awsConfigChefServerSettings.Fqdn,
+				FqdnRootCA:        awsConfigChefServerSettings.RootCA,
 				EnableCustomCerts: awsConfigChefServerSettings.EnableCustomCerts,
 				InstanceCount:     awsConfigChefServerSettings.InstanceCount,
 				PrivateKey:        awsConfigChefServerSettings.PrivateKey,
diff --git a/components/automate-cli/cmd/chef-automate/pullAndGenerateConfig.go b/components/automate-cli/cmd/chef-automate/pullAndGenerateConfig.go
index f017f9861..bd2d5281a 100644
--- a/components/automate-cli/cmd/chef-automate/pullAndGenerateConfig.go
+++ b/components/automate-cli/cmd/chef-automate/pullAndGenerateConfig.go
@@ -2,6 +2,7 @@ package main
 
 import (
 	"encoding/json"
+	"errors"
 	"fmt"
 	"io/ioutil"
 	"net/url"
@@ -35,63 +36,62 @@ type ObjectStorageConfig struct {
 }
 
 type HAAwsAutoTfvars struct {
-	AwsProfile                         string      `json:"aws_profile"`
-	AwsRegion                          string      `json:"aws_region"`
-	Endpoint                           string      `json:"endpoint"`
-	SecretKey                          string      `json:"secret_key"`
-	AccessKey                          string      `json:"access_key"`
-	BucketName                         string      `json:"bucket_name"`
-	Architecture                       string      `json:"architecture"`
-	SshKeyFileName                     string      `json:"aws_ssh_key_pair_name"`
-	AwsVpcId                           string      `json:"aws_vpc_id"`
-	AmiID                              string      `json:"aws_ami_id"`
-	AwsCidrBlockAddr                   string      `json:"aws_cidr_block_addr"`
-	PrivateCustomSubnets               []string    `json:"private_custom_subnets"`
-	PublicCustomSubnets                []string    `json:"public_custom_subnets"`
-	AutomateLbCertificateArn           string      `json:"automate_lb_certificate_arn"`
-	ChefServerLbCertificateArn         string      `json:"chef_server_lb_certificate_arn"`
-	AwsManagedRdsPostgresqlCertificate string      `json:"managed_rds_certificate"`
-	ManagedRdsDbuserPassword           string      `json:"managed_rds_dbuser_password"`
-	ManagedRdsDbuserUsername           string      `json:"managed_rds_dbuser_username"`
-	ManagedRdsSuperuserPassword        string      `json:"managed_rds_superuser_password"`
-	ManagedRdsSuperuserUsername        string      `json:"managed_rds_superuser_username"`
-	ManagedRdsInstanceUrl              string      `json:"managed_rds_instance_url"`
-	OsSnapshotUserAccessKeySecret      string      `json:"os_snapshot_user_access_key_secret"`
-	OsSnapshotUserAccessKeyId          string      `json:"os_snapshot_user_access_key_id"`
-	AwsOsSnapshotRoleArn               string      `json:"aws_os_snapshot_role_arn"`
-	ManagedOpensearchCertificate       string      `json:"managed_opensearch_certificate"`
-	ManagedOpensearchUserPassword      string      `json:"managed_opensearch_user_password"`
-	ManagedOpensearchUsername          string      `json:"managed_opensearch_username"`
-	ManagedOpensearchDomainUrl         string      `json:"managed_opensearch_domain_url"`
-	ManagedOpensearchDomainName        string      `json:"managed_opensearch_domain_name"`
-	AwsSetupManagedServices            bool        `json:"setup_managed_services"`
-	ExistingPostgresqlPrivateIps       []string    `json:"existing_postgresql_private_ips"`
-	ExistingOpensearchPrivateIps       []string    `json:"existing_opensearch_private_ips"`
-	ExistingChefServerPrivateIps       []string    `json:"existing_chef_server_private_ips"`
-	ExistingAutomatePrivateIps         []string    `json:"existing_automate_private_ips"`
-	BackupConfigS3                     string      `json:"backup_config_s3"`
-	BackupConfigEFS                    string      `json:"backup_config_efs"`
-	LBAccessLogs                       string      `json:"lb_access_logs"`
-	DeleteOnTermination                string      `json:"delete_on_termination"`
-	AutomateServerInstanceType         string      `json:"automate_server_instance_type"`
-	AutomateEbsVolumeIops              string      `json:"automate_ebs_volume_iops"`
-	AutomateEbsVolumeSize              string      `json:"automate_ebs_volume_size"`
-	AutomateEbsVolumeType              string      `json:"automate_ebs_volume_type"`
-	ChefServerInstanceType             string      `json:"chef_server_instance_type"`
-	ChefEbsVolumeIops                  string      `json:"chef_ebs_volume_iops"`
-	ChefEbsVolumeSize                  string      `json:"chef_ebs_volume_size"`
-	ChefEbsVolumeType                  string      `json:"chef_ebs_volume_type"`
-	OpensearchServerInstanceType       string      `json:"opensearch_server_instance_type"`
-	OpensearchEbsVolumeIops            string      `json:"opensearch_ebs_volume_iops"`
-	OpensearchEbsVolumeSize            string      `json:"opensearch_ebs_volume_size"`
-	OpensearchEbsVolumeType            string      `json:"opensearch_ebs_volume_type"`
-	PostgresqlServerInstanceType       string      `json:"postgresql_server_instance_type"`
-	PostgresqlEbsVolumeIops            string      `json:"postgresql_ebs_volume_iops"`
-	PostgresqlEbsVolumeSize            string      `json:"postgresql_ebs_volume_size"`
-	PostgresqlEbsVolumeType            string      `json:"postgresql_ebs_volume_type"`
+	AwsProfile                         string   `json:"aws_profile"`
+	AwsRegion                          string   `json:"aws_region"`
+	Endpoint                           string   `json:"endpoint"`
+	SecretKey                          string   `json:"secret_key"`
+	AccessKey                          string   `json:"access_key"`
+	BucketName                         string   `json:"bucket_name"`
+	Architecture                       string   `json:"architecture"`
+	SshKeyFileName                     string   `json:"aws_ssh_key_pair_name"`
+	AwsVpcId                           string   `json:"aws_vpc_id"`
+	AmiID                              string   `json:"aws_ami_id"`
+	AwsCidrBlockAddr                   string   `json:"aws_cidr_block_addr"`
+	PrivateCustomSubnets               []string `json:"private_custom_subnets"`
+	PublicCustomSubnets                []string `json:"public_custom_subnets"`
+	AutomateLbCertificateArn           string   `json:"automate_lb_certificate_arn"`
+	ChefServerLbCertificateArn         string   `json:"chef_server_lb_certificate_arn"`
+	AwsManagedRdsPostgresqlCertificate string   `json:"managed_rds_certificate"`
+	ManagedRdsDbuserPassword           string   `json:"managed_rds_dbuser_password"`
+	ManagedRdsDbuserUsername           string   `json:"managed_rds_dbuser_username"`
+	ManagedRdsSuperuserPassword        string   `json:"managed_rds_superuser_password"`
+	ManagedRdsSuperuserUsername        string   `json:"managed_rds_superuser_username"`
+	ManagedRdsInstanceUrl              string   `json:"managed_rds_instance_url"`
+	OsSnapshotUserAccessKeySecret      string   `json:"os_snapshot_user_access_key_secret"`
+	OsSnapshotUserAccessKeyId          string   `json:"os_snapshot_user_access_key_id"`
+	AwsOsSnapshotRoleArn               string   `json:"aws_os_snapshot_role_arn"`
+	ManagedOpensearchCertificate       string   `json:"managed_opensearch_certificate"`
+	ManagedOpensearchUserPassword      string   `json:"managed_opensearch_user_password"`
+	ManagedOpensearchUsername          string   `json:"managed_opensearch_username"`
+	ManagedOpensearchDomainUrl         string   `json:"managed_opensearch_domain_url"`
+	ManagedOpensearchDomainName        string   `json:"managed_opensearch_domain_name"`
+	AwsSetupManagedServices            bool     `json:"setup_managed_services"`
+	ExistingPostgresqlPrivateIps       []string `json:"existing_postgresql_private_ips"`
+	ExistingOpensearchPrivateIps       []string `json:"existing_opensearch_private_ips"`
+	ExistingChefServerPrivateIps       []string `json:"existing_chef_server_private_ips"`
+	ExistingAutomatePrivateIps         []string `json:"existing_automate_private_ips"`
+	BackupConfigS3                     string   `json:"backup_config_s3"`
+	BackupConfigEFS                    string   `json:"backup_config_efs"`
+	LBAccessLogs                       string   `json:"lb_access_logs"`
+	DeleteOnTermination                string   `json:"delete_on_termination"`
+	AutomateServerInstanceType         string   `json:"automate_server_instance_type"`
+	AutomateEbsVolumeIops              string   `json:"automate_ebs_volume_iops"`
+	AutomateEbsVolumeSize              string   `json:"automate_ebs_volume_size"`
+	AutomateEbsVolumeType              string   `json:"automate_ebs_volume_type"`
+	ChefServerInstanceType             string   `json:"chef_server_instance_type"`
+	ChefEbsVolumeIops                  string   `json:"chef_ebs_volume_iops"`
+	ChefEbsVolumeSize                  string   `json:"chef_ebs_volume_size"`
+	ChefEbsVolumeType                  string   `json:"chef_ebs_volume_type"`
+	OpensearchServerInstanceType       string   `json:"opensearch_server_instance_type"`
+	OpensearchEbsVolumeIops            string   `json:"opensearch_ebs_volume_iops"`
+	OpensearchEbsVolumeSize            string   `json:"opensearch_ebs_volume_size"`
+	OpensearchEbsVolumeType            string   `json:"opensearch_ebs_volume_type"`
+	PostgresqlServerInstanceType       string   `json:"postgresql_server_instance_type"`
+	PostgresqlEbsVolumeIops            string   `json:"postgresql_ebs_volume_iops"`
+	PostgresqlEbsVolumeSize            string   `json:"postgresql_ebs_volume_size"`
+	PostgresqlEbsVolumeType            string   `json:"postgresql_ebs_volume_type"`
 }
 
-
 type HATfvars struct {
 	Region                        string      `json:"region"`
 	Endpoint                      string      `json:"endpoint"`
@@ -434,6 +434,12 @@ func (p *PullConfigsImpl) fetchInfraConfig() (*ExistingInfraConfigToml, error) {
 		sharedConfigToml.Automate.Config.Fqdn = a2Fqdn
 	}
 
+	root_ca, fqdn, err := getChefServerFqdnAndLBRootCA(EXISTING_INFRA_MODE)
+	if err != nil {
+		return nil, status.Wrap(err, status.ConfigError, "unable to fetch Chef Server FQDN and LB_ROOT_CA")
+	}
+	sharedConfigToml.ChefServer.Config.RootCA, sharedConfigToml.ChefServer.Config.Fqdn = root_ca, fqdn
+
 	return sharedConfigToml, nil
 }
 
@@ -501,6 +507,23 @@ func setExternalPGDetails(instanceUrl, superUserName, superUserPassword, dBUserN
 	}
 }
 
+func getChefServerFqdnAndLBRootCA(deploymentType string) (string, string, error) {
+	if deploymentType == EXISTING_INFRA_MODE {
+		ExistingInfraConfig, err := getExistingInfraConfig(filepath.Join(initConfigHabA2HAPathFlag.a2haDirPath, "config.toml"))
+		if err != nil {
+			return "", "", err
+		}
+		return ExistingInfraConfig.ChefServer.Config.RootCA, ExistingInfraConfig.ChefServer.Config.Fqdn, nil
+	} else if deploymentType == AWS_MODE {
+		AWSConfig, err := getAwsConfig(filepath.Join(initConfigHabA2HAPathFlag.a2haDirPath, "config.toml"))
+		if err != nil {
+			return "", "", err
+		}
+		return AWSConfig.ChefServer.Config.RootCA, AWSConfig.ChefServer.Config.Fqdn, nil
+	}
+	return "", "", errors.New("deployment type unknown")
+}
+
 func (p *PullConfigsImpl) getOsCertsByIp(osConfigMap map[string]*ConfigKeys) []CertByIP {
 	var osCerts []CertByIP
 	nodesDnMap := make(map[string]bool)
@@ -741,6 +764,12 @@ func (p *PullConfigsImpl) fetchAwsConfig() (*AwsConfigToml, error) {
 		sharedConfigToml.Aws.Config.OsUserAccessKeySecret = objStorageConfig.secrectKey
 	}
 
+	root_ca, fqdn, err := getChefServerFqdnAndLBRootCA(AWS_MODE)
+	if err != nil {
+		return nil, status.Wrap(err, status.ConfigError, "unable to fetch Chef Server FQDN and LB_ROOT_CA")
+	}
+	sharedConfigToml.ChefServer.Config.RootCA, sharedConfigToml.ChefServer.Config.Fqdn = root_ca, fqdn
+
 	return sharedConfigToml, nil
 }
 
diff --git a/components/automate-cli/pkg/verifyserver/constants/fqdn.go b/components/automate-cli/pkg/verifyserver/constants/fqdn.go
index 7e1c5492b..37a868e82 100644
--- a/components/automate-cli/pkg/verifyserver/constants/fqdn.go
+++ b/components/automate-cli/pkg/verifyserver/constants/fqdn.go
@@ -3,7 +3,7 @@ package constants
 const (
 	FQDN_TITLE                     = "FQDN is reachable"
 	FQDN_ERROR_MESSAGE             = "FQDN is not reachable"
-	FQDN_RESOLUTION_MESSAGE        = "Ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
+	FQDN_RESOLUTION_MESSAGE        = "Ensure FQDN is reachable and mapped to load balancer.Also, ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
 	NODE_TITLE                     = "Nodes are reachable"
 	NODE_SUCCESS_MESSAGE           = "All nodes are reachable"
 	NODE_ERROR_MESSAGE             = "%v is not reachable"
diff --git a/components/automate-cli/pkg/verifyserver/server/api/v1/fqdn.go b/components/automate-cli/pkg/verifyserver/server/api/v1/fqdn.go
index cf813cfa3..7244abab2 100644
--- a/components/automate-cli/pkg/verifyserver/server/api/v1/fqdn.go
+++ b/components/automate-cli/pkg/verifyserver/server/api/v1/fqdn.go
@@ -18,9 +18,9 @@ func (h *Handler) CheckFqdn(c *fiber.Ctx) error {
 		return fiber.NewError(http.StatusBadRequest, "Invalid Body Request")
 	}
 
-	if strings.TrimSpace(req.Fqdn) == "" || strings.TrimSpace(req.RootCert) == "" || len(req.Nodes) == 0 {
-		h.Logger.Error("fqdn, root_cert and nodes can't be empty.")
-		return fiber.NewError(http.StatusBadRequest, "fqdn, root_cert and nodes can't be empty, Please provide all the required fields.")
+	if strings.TrimSpace(req.Fqdn) == "" || len(req.Nodes) == 0 {
+		h.Logger.Error("fqdn, nodes can't be empty.")
+		return fiber.NewError(http.StatusBadRequest, "fqdn, nodes can't be empty, Please provide all the required fields.")
 	}
 
 	for _, ip := range req.Nodes {
diff --git a/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/nfsmountbackupchecktrigger/nfsmountbackupcheck.go b/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/nfsmountbackupchecktrigger/nfsmountbackupcheck.go
index 1dc91abae..5bddfa401 100644
--- a/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/nfsmountbackupchecktrigger/nfsmountbackupcheck.go
+++ b/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/nfsmountbackupchecktrigger/nfsmountbackupcheck.go
@@ -2,8 +2,8 @@ package nfsmountbackupchecktrigger
 
 import (
 	"encoding/json"
-	"net/http"
 	"errors"
+	"net/http"
 
 	"github.com/chef/automate/components/automate-cli/pkg/verifyserver/constants"
 	"github.com/chef/automate/components/automate-cli/pkg/verifyserver/models"
@@ -34,7 +34,8 @@ func (nbc *NfsBackupConfigCheck) Run(config *models.Config) []models.CheckTrigge
 	if config.Hardware == nil {
 		return trigger.HardwareNil(constants.NFS_BACKUP_CONFIG, true, true, false)
 	}
-	if config.Backup.FileSystem == nil {
+
+	if config.Backup == nil || config.Backup.FileSystem == nil {
 		return trigger.ConstructNilResp(config, constants.NFS_BACKUP_CONFIG)
 	}
 	if isMountLocationEmpty(config.Backup) {
@@ -53,7 +54,7 @@ func (nbc *NfsBackupConfigCheck) Run(config *models.Config) []models.CheckTrigge
 	//Triggers only one API call for nfs mount API
 	nfsMountAPIResponse, err := nbc.triggerCheckForMountService(nfsMountReq)
 	if err != nil {
-		if nfsMountAPIResponse!= nil {
+		if nfsMountAPIResponse != nil {
 			return constructErrorResult(config, nfsMountAPIResponse.Error.Message, nfsMountAPIResponse.Error.Code)
 		}
 		return constructErrorResult(config, err.Error(), 500)
diff --git a/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/s3backupchecktrigger/s3backupconfigchecktrigger.go b/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/s3backupchecktrigger/s3backupconfigchecktrigger.go
index 9174d0eed..4c27ea2e6 100644
--- a/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/s3backupchecktrigger/s3backupconfigchecktrigger.go
+++ b/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/s3backupchecktrigger/s3backupconfigchecktrigger.go
@@ -29,7 +29,7 @@ func (svc *S3BackupConfigCheck) Run(config *models.Config) []models.CheckTrigger
 		}
 	}
 
-	if config.Backup.ObjectStorage == nil {
+	if config.Backup == nil || config.Backup.ObjectStorage == nil {
 		return s3ConfigSkippedResponse(config, constants.S3_BACKUP_CONFIG)
 	}
 
diff --git a/components/automate-cli/pkg/verifyserver/services/fqdnservice/fqdnservice.go b/components/automate-cli/pkg/verifyserver/services/fqdnservice/fqdnservice.go
index cf601f829..9e4f88394 100644
--- a/components/automate-cli/pkg/verifyserver/services/fqdnservice/fqdnservice.go
+++ b/components/automate-cli/pkg/verifyserver/services/fqdnservice/fqdnservice.go
@@ -39,12 +39,23 @@ func (fq *FqdnService) createClient(rootCert string) *http.Client {
 	caCertPool := x509.NewCertPool()
 	caCertPool.AppendCertsFromPEM([]byte(rootCert))
 
+	// If root-ca is passed then we are using it, otherwise we are making insecure call
+	var tlsConfig = new(tls.Config)
+	if rootCert == "" {
+		tlsConfig = &tls.Config{
+			InsecureSkipVerify: true,
+			MinVersion:         tls.VersionTLS12,
+		}
+	} else {
+		tlsConfig = &tls.Config{
+			RootCAs:    caCertPool,
+			MinVersion: tls.VersionTLS12,
+		}
+	}
+
 	client := &http.Client{
 		Transport: &http.Transport{
-			TLSClientConfig: &tls.Config{
-				RootCAs:    caCertPool,
-				MinVersion: tls.VersionTLS12,
-			},
+			TLSClientConfig: tlsConfig,
 		},
 		Timeout: fq.timeout * time.Second,
 	}
@@ -241,7 +252,7 @@ func (fq *FqdnService) CheckFqdnReachability(req models.FqdnRequest, port string
 	certificateValidityCheck := true
 	fqdnReachabilityCheck := true
 
-	if !req.IsAfterDeployment {
+	if !req.IsAfterDeployment && strings.TrimSpace(req.RootCert) != "" {
 		check := fq.validateCertificate(req.RootCert)
 		certificateValidityCheck = check.Passed
 		response.Checks = append(response.Checks, check)
diff --git a/components/automate-es-gateway/habitat/config/nginx.conf b/components/automate-es-gateway/habitat/config/nginx.conf
index 0862fa7df..e13be4991 100644
--- a/components/automate-es-gateway/habitat/config/nginx.conf
+++ b/components/automate-es-gateway/habitat/config/nginx.conf
@@ -60,7 +60,9 @@ http {
 {{/if~}}
     keepalive 8;
   }
-
+  {{~#if cfg.ngx.http.proxy_ssl_server_name}}
+    proxy_ssl_server_name on;
+  {{/if~}}
   #proxy_set_header Authorization "Basic admin:admin";
 
   fastcgi_temp_path "{{pkg.svc_var_path}}/tmp/fastcgi";
diff --git a/lib/config/hadeployconfigverify.go b/lib/config/hadeployconfigverify.go
index a19bbb86b..382743f9e 100644
--- a/lib/config/hadeployconfigverify.go
+++ b/lib/config/hadeployconfigverify.go
@@ -205,8 +205,10 @@ func (c *HaDeployConfig) verifyAutomateSettings() error {
 	if err := validatePort(automateSettings.TeamsPort, "teams_port", false); err != nil {
 		errorList.PushBack(err)
 	}
-	if err := validateFqdnRootCA(automateSettings.FqdnRootCA, AUTOMATE); err != nil {
-		errorList.PushBack(err)
+	if automateSettings.FqdnRootCA != "" {
+		if err := validateFqdnRootCA(automateSettings.FqdnRootCA, AUTOMATE); err != nil {
+			errorList.PushBack(err)
+		}
 	}
 	if automateSettings.EnableCustomCerts {
 		if err := validateAutomateCerts(c); err != nil {


Test patch:
diff --git a/components/automate-cli/pkg/verifyserver/models/testdata/HaAwsManaged.toml b/components/automate-cli/pkg/verifyserver/models/testdata/HaAwsManaged.toml
index 8b8ee59ad..d37dafaeb 100644
--- a/components/automate-cli/pkg/verifyserver/models/testdata/HaAwsManaged.toml
+++ b/components/automate-cli/pkg/verifyserver/models/testdata/HaAwsManaged.toml
@@ -526,10 +526,10 @@ opensearch_server_instance_type = "m5.large"
 postgresql_server_instance_type = "m5.large"
 
 # eg: automate_lb_certificate_arn = "arn:aws:acm...."
-automate_lb_certificate_arn = "arn:aws:acm:ca-central-1:112758395563:certificate/1754e15c-5834-44b0-82a7-0508c3155601"
+automate_lb_certificate_arn = "arn:aws:acm...."
 
 # eg: chef_server_lb_certificate_arn = "arn:aws:acm...."
-chef_server_lb_certificate_arn = "arn:aws:acm:ca-central-1:112758395563:certificate/1754e15c-5834-44b0-82a7-0508c3155601"
+chef_server_lb_certificate_arn = "arn:aws:acm...."
 
 # eg: automate_ebs_volume_iops = "100"
 automate_ebs_volume_iops = "100"
diff --git a/components/automate-cli/pkg/verifyserver/server/api/v1/fqdn_test.go b/components/automate-cli/pkg/verifyserver/server/api/v1/fqdn_test.go
index 1956188e8..b8ab1c85c 100644
--- a/components/automate-cli/pkg/verifyserver/server/api/v1/fqdn_test.go
+++ b/components/automate-cli/pkg/verifyserver/server/api/v1/fqdn_test.go
@@ -141,7 +141,7 @@ func TestCheckFqdn(t *testing.T) {
 				"result": null,
 				"error": {
 					"code": 400,
-					"message": "fqdn, root_cert and nodes can't be empty, Please provide all the required fields."
+					"message": "fqdn, nodes can't be empty, Please provide all the required fields."
 				}
 			}`,
 		},
diff --git a/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/fqdnchecktrigger/fqdncheck_test.go b/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/fqdnchecktrigger/fqdncheck_test.go
index ce4b729c6..56456b3c3 100644
--- a/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/fqdnchecktrigger/fqdncheck_test.go
+++ b/components/automate-cli/pkg/verifyserver/services/batchcheckservice/trigger/fqdnchecktrigger/fqdncheck_test.go
@@ -77,7 +77,7 @@ const (
 			  "passed": false,
 			  "success_msg": "",
 			  "error_msg": "FQDN is not reachable",
-			  "resolution_msg": "Ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
+			  "resolution_msg": "Ensure FQDN is reachable and mapped to load balancer.Also, ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
 			},
 			{
 			  "title": "Nodes are reachable",
@@ -179,7 +179,7 @@ const (
 						"passed": false,
 						"success_msg": "",
 						"error_msg": "FQDN is not reachable",
-						"resolution_msg": "Ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
+						"resolution_msg": "Ensure FQDN is reachable and mapped to load balancer.Also, ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
 					},
 					{
 						"title": "Nodes are reachable",
@@ -212,7 +212,7 @@ const (
 						"passed": false,
 						"success_msg": "",
 						"error_msg": "FQDN is not reachable",
-						"resolution_msg": "Ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
+						"resolution_msg": "Ensure FQDN is reachable and mapped to load balancer.Also, ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
 					},
 					{
 						"title": "Nodes are reachable",
@@ -246,7 +246,7 @@ const (
 						"passed": false,
 						"success_msg": "",
 						"error_msg": "FQDN is not reachable",
-						"resolution_msg": "Ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
+						"resolution_msg": "Ensure FQDN is reachable and mapped to load balancer.Also, ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
 					},
 					{
 						"title": "Nodes are reachable",
@@ -277,7 +277,7 @@ const (
 						"passed": false,
 						"success_msg": "",
 						"error_msg": "FQDN is not reachable",
-						"resolution_msg": "Ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
+						"resolution_msg": "Ensure FQDN is reachable and mapped to load balancer.Also, ensure your Port 443 is open and load balancer is able to reach to the machine on port 443. Review security group or firewall settings."
 					},
 					{
 						"title": "Nodes are reachable",
@@ -410,10 +410,10 @@ func TestFqdnCheck_Run(t *testing.T) {
 					APIToken:    token,
 				},
 			},
-			isPassed:   false,
-			response:   "Internal Server Error",
-			httpStatus: http.StatusInternalServerError,
-			isError:    true,
+			isPassed:               false,
+			response:               "Internal Server Error",
+			httpStatus:             http.StatusInternalServerError,
+			isError:                true,
 			requiredStatusResponse: `{"error":{"code":500,"message":"Internal Server Error"}}`,
 		},
 		{
@@ -428,10 +428,10 @@ func TestFqdnCheck_Run(t *testing.T) {
 					APIToken:    token,
 				},
 			},
-			isPassed:   false,
-			response:   "fqdn, root_cert and nodes can't be empty, Please provide all the required fields.",
-			httpStatus: http.StatusBadRequest,
-			isError:    true,
+			isPassed:               false,
+			response:               "fqdn, root_cert and nodes can't be empty, Please provide all the required fields.",
+			httpStatus:             http.StatusBadRequest,
+			isError:                true,
 			requiredStatusResponse: `{"error":{"code":400,"message":"fqdn, root_cert and nodes can't be empty, Please provide all the required fields."}}`,
 		},
 		{
diff --git a/lib/config/hadeployconfig_test.go b/lib/config/hadeployconfig_test.go
index 50cf22f71..633f32ca6 100644
--- a/lib/config/hadeployconfig_test.go
+++ b/lib/config/hadeployconfig_test.go
@@ -517,8 +517,8 @@ Dv6bUUXSsZF4fb1diLIBpmD1hh8OGNY65LUPpzAxJeZvo5w=
 						ChefServerInstanceType:        "t3.medium",
 						OpensearchServerInstanceType:  "m5.large",
 						PostgresqlServerInstanceType:  "m5.large",
-						AutomateLbCertificateArn:      "arn:aws:acm:ca-central-1:112758395563:certificate/1754e15c-5834-44b0-82a7-0508c3155601",
-						ChefServerLbCertificateArn:    "arn:aws:acm:ca-central-1:112758395563:certificate/1754e15c-5834-44b0-82a7-0508c3155601",
+						AutomateLbCertificateArn:      "arn:aws:acm....",
+						ChefServerLbCertificateArn:    "arn:aws:acm....",
 						AutomateEbsVolumeIops:         "100",
 						AutomateEbsVolumeSize:         "50",
 						AutomateEbsVolumeType:         "gp3",
diff --git a/lib/config/hadeployconfigverify_test.go b/lib/config/hadeployconfigverify_test.go
index 7a6c610ec..b09a6cf28 100644
--- a/lib/config/hadeployconfigverify_test.go
+++ b/lib/config/hadeployconfigverify_test.go
@@ -21,7 +21,7 @@ func TestParseAndVerify(t *testing.T) {
 			name:    "Verify AWS Config",
 			args:    args{configFile: "./testdata/HaAws.toml"},
 			wantErr: true,
-			err:     errors.New("invalid or empty: ssh_user\ninvalid or empty: ssh_key_file\ninvalid or empty s3_bucketName\ninvalid or empty: aws profile name\ninvalid or empty: aws region\ninvalid or empty: aws aws_vpc_id\ninvalid or empty: aws private_custom_subnets\ninvalid or empty: aws public_custom_subnets\ninvalid or empty: aws ssh_key_pair_name\ninvalid or empty: aws ami_id\ninvalid or empty: aws automate_server_instance_type\ninvalid or empty: aws automate_lb_certificate_arn\nempty value: aws automate_ebs_volume_iops\nempty value: aws automate_ebs_volume_size\ninvalid or empty: aws automate_ebs_volume_type\nempty value: aws chef_ebs_volume_iops\nempty value: aws chef_ebs_volume_size\ninvalid or empty: aws chef_ebs_volume_type\ninvalid or empty: aws chef_server_instance_type\ninvalid or empty: aws chef_server_lb_certificate_arn\ninvalid or empty: aws opensearch_server_instance_type\ninvalid or empty: aws postgresql_server_instance_type\nempty value: aws opensearch_ebs_volume_iops\nempty value: aws opensearch_ebs_volume_size\ninvalid or empty: aws opensearch_ebs_volume_type\nempty value: aws postgresql_ebs_volume_iops\nempty value: aws postgresql_ebs_volume_size\ninvalid or empty: aws postgresql_ebs_volume_type\ninvalid or empty URL: automate fqdn\nempty value: automate instance_count\nautomate root_ca is missing\nempty value: chef server instance_count\nempty value: opensearch instance_count\nempty value: postgresql instance_count"),
+			err:     errors.New("invalid or empty: ssh_user\ninvalid or empty: ssh_key_file\ninvalid or empty s3_bucketName\ninvalid or empty: aws profile name\ninvalid or empty: aws region\ninvalid or empty: aws aws_vpc_id\ninvalid or empty: aws private_custom_subnets\ninvalid or empty: aws public_custom_subnets\ninvalid or empty: aws ssh_key_pair_name\ninvalid or empty: aws ami_id\ninvalid or empty: aws automate_server_instance_type\ninvalid or empty: aws automate_lb_certificate_arn\nempty value: aws automate_ebs_volume_iops\nempty value: aws automate_ebs_volume_size\ninvalid or empty: aws automate_ebs_volume_type\nempty value: aws chef_ebs_volume_iops\nempty value: aws chef_ebs_volume_size\ninvalid or empty: aws chef_ebs_volume_type\ninvalid or empty: aws chef_server_instance_type\ninvalid or empty: aws chef_server_lb_certificate_arn\ninvalid or empty: aws opensearch_server_instance_type\ninvalid or empty: aws postgresql_server_instance_type\nempty value: aws opensearch_ebs_volume_iops\nempty value: aws opensearch_ebs_volume_size\ninvalid or empty: aws opensearch_ebs_volume_type\nempty value: aws postgresql_ebs_volume_iops\nempty value: aws postgresql_ebs_volume_size\ninvalid or empty: aws postgresql_ebs_volume_type\ninvalid or empty URL: automate fqdn\nempty value: automate instance_count\nempty value: chef server instance_count\nempty value: opensearch instance_count\nempty value: postgresql instance_count"),
 		},
 		{
 			name:    "Verify AWS Managed Config",
@@ -39,7 +39,7 @@ func TestParseAndVerify(t *testing.T) {
 			name:    "Verify OnPrem Db Self-Managed Config",
 			args:    args{configFile: "./testdata/HaOnPremDbSelfManaged.toml"},
 			wantErr: true,
-			err:     errors.New("invalid ssh_key_file: ~/.ssh/A2HA.pem (stat ~/.ssh/A2HA.pem: no such file or directory)\ninvalid or empty: dbuser_username\ninvalid or empty: dbuser_password\ninvalid or empty URL: instance_url\ninvalid or empty: postgresql_root_cert\ninvalid or empty: superuser_password\ninvalid or empty: superuser_username\ninvalid or empty: opensearch_domain_name\ninvalid or empty URL: opensearch_domain_url\ninvalid or empty: opensearch_root_cert\ninvalid or empty: opensearch_user_password\ninvalid or empty: opensearch_username\nautomate root_ca is missing"),
+			err:     errors.New("invalid ssh_key_file: ~/.ssh/A2HA.pem (stat ~/.ssh/A2HA.pem: no such file or directory)\ninvalid or empty: dbuser_username\ninvalid or empty: dbuser_password\ninvalid or empty URL: instance_url\ninvalid or empty: postgresql_root_cert\ninvalid or empty: superuser_password\ninvalid or empty: superuser_username\ninvalid or empty: opensearch_domain_name\ninvalid or empty URL: opensearch_domain_url\ninvalid or empty: opensearch_root_cert\ninvalid or empty: opensearch_user_password\ninvalid or empty: opensearch_username"),
 		},
 		{
 			name:    "Verify OnPrem Db Aws Managed Config",
@@ -51,19 +51,19 @@ func TestParseAndVerify(t *testing.T) {
 			name:    "Verify Aws Chef Managed Config",
 			args:    args{configFile: "./testdata/HaAwsChefManaged.toml"},
 			wantErr: true,
-			err:     errors.New("invalid value '1234567' for field 'ssh_port' port number must be between 1 and 65535\ninvalid or empty: ssh_key_file\ninvalid or empty: aws profile name\ninvalid or empty: aws region\ninvalid or empty: aws aws_vpc_id\nminimum number of aws private_custom_subnets required is 3\ninvalid or empty: aws public_custom_subnets\ninvalid or empty: aws ssh_key_pair_name\ninvalid or empty: aws ami_id\ninvalid or empty: aws automate_server_instance_type\ninvalid or empty: aws automate_lb_certificate_arn\nempty value: aws automate_ebs_volume_iops\nempty value: aws automate_ebs_volume_size\ninvalid or empty: aws automate_ebs_volume_type\nempty value: aws chef_ebs_volume_iops\nempty value: aws chef_ebs_volume_size\ninvalid or empty: aws chef_ebs_volume_type\ninvalid or empty: aws chef_server_instance_type\ninvalid or empty: aws chef_server_lb_certificate_arn\ninvalid or empty: aws opensearch_server_instance_type\ninvalid or empty: aws postgresql_server_instance_type\nempty value: aws opensearch_ebs_volume_iops\nempty value: aws opensearch_ebs_volume_size\ninvalid or empty: aws opensearch_ebs_volume_type\nempty value: aws postgresql_ebs_volume_iops\nempty value: aws postgresql_ebs_volume_size\ninvalid or empty: aws postgresql_ebs_volume_type\ninvalid or empty URL: automate fqdn\npassword is too short (must be at least 8 characters)\nempty value: automate instance_count\nautomate root_ca is missing\nautomate public_key and/or private_key are missing. Otherwise set enable_custom_certs to false\nempty value: chef server instance_count\nchefServer public_key and/or private_key are missing. Otherwise set enable_custom_certs to false\nempty value: opensearch instance_count\nopensearch root_ca and/or admin_key and/or admin_cert and/or public_key and/or private_key are missing. Otherwise set enable_custom_certs to false\nempty value: postgresql instance_count\npostgresql root_ca and/or public_key and/or private_key are missing. Otherwise set enable_custom_certs to false"),
+			err:     errors.New("invalid value '1234567' for field 'ssh_port' port number must be between 1 and 65535\ninvalid or empty: ssh_key_file\ninvalid or empty: aws profile name\ninvalid or empty: aws region\ninvalid or empty: aws aws_vpc_id\nminimum number of aws private_custom_subnets required is 3\ninvalid or empty: aws public_custom_subnets\ninvalid or empty: aws ssh_key_pair_name\ninvalid or empty: aws ami_id\ninvalid or empty: aws automate_server_instance_type\ninvalid or empty: aws automate_lb_certificate_arn\nempty value: aws automate_ebs_volume_iops\nempty value: aws automate_ebs_volume_size\ninvalid or empty: aws automate_ebs_volume_type\nempty value: aws chef_ebs_volume_iops\nempty value: aws chef_ebs_volume_size\ninvalid or empty: aws chef_ebs_volume_type\ninvalid or empty: aws chef_server_instance_type\ninvalid or empty: aws chef_server_lb_certificate_arn\ninvalid or empty: aws opensearch_server_instance_type\ninvalid or empty: aws postgresql_server_instance_type\nempty value: aws opensearch_ebs_volume_iops\nempty value: aws opensearch_ebs_volume_size\ninvalid or empty: aws opensearch_ebs_volume_type\nempty value: aws postgresql_ebs_volume_iops\nempty value: aws postgresql_ebs_volume_size\ninvalid or empty: aws postgresql_ebs_volume_type\ninvalid or empty URL: automate fqdn\npassword is too short (must be at least 8 characters)\nempty value: automate instance_count\nautomate public_key and/or private_key are missing. Otherwise set enable_custom_certs to false\nempty value: chef server instance_count\nchefServer public_key and/or private_key are missing. Otherwise set enable_custom_certs to false\nempty value: opensearch instance_count\nopensearch root_ca and/or admin_key and/or admin_cert and/or public_key and/or private_key are missing. Otherwise set enable_custom_certs to false\nempty value: postgresql instance_count\npostgresql root_ca and/or public_key and/or private_key are missing. Otherwise set enable_custom_certs to false"),
 		},
 		{
 			name:    "Verify Failed Ha Aws Managed Config",
 			args:    args{configFile: "./testdata/HaAwsManagedFailed.toml"},
 			wantErr: true,
-			err:     errors.New("invalid or empty: secrets_key_file\ninvalid or empty: secrets_store_file\ninvalid value 'awss' for field 'architecture'. Expected values are: aws, existing_nodes, deployment\ninvalid value '/hab/a3_deploy_workspace' for field 'workspace_path'. Expected values are: /hab/a2_deploy_workspace\ninvalid or empty: ssh_user\ninvalid or empty: ssh_key_file\ninvalid or empty s3_bucketName\ninvalid or empty: aws profile name\ninvalid or empty: aws region\ninvalid or empty: aws private_custom_subnets\ninvalid or empty: aws public_custom_subnets\ninvalid or empty: aws ssh_key_pair_name\ninvalid value 'aws lb_access_logs' for field 'fals'\ninvalid or empty: aws ami_id\ninvalid or empty: aws automate_server_instance_type\ninvalid or empty: aws automate_lb_certificate_arn\nempty value: aws automate_ebs_volume_iops\nempty value: aws automate_ebs_volume_size\ninvalid or empty: aws automate_ebs_volume_type\nempty value: aws chef_ebs_volume_iops\nempty value: aws chef_ebs_volume_size\ninvalid or empty: aws chef_ebs_volume_type\ninvalid or empty: aws chef_server_instance_type\ninvalid or empty: aws chef_server_lb_certificate_arn\ninvalid or empty: aws managed_opensearch_domain_name\ninvalid or empty URL: aws managed_opensearch_domain_url\ninvalid or empty: aws managed_opensearch_user_password\ninvalid or empty: aws managed_opensearch_username\ninvalid or empty: aws managed_rds_dbuser_password\ninvalid or empty: aws managed_rds_dbuser_username\ninvalid or empty URL: aws managed_rds_instance_url\ninvalid or empty: aws managed_rds_superuser_password\ninvalid or empty: aws managed_rds_superuser_username\ninvalid or empty URL: automate fqdn\nempty value: automate instance_count\nautomate root_ca is missing\nempty value: chef server instance_count"),
+			err:     errors.New("invalid or empty: secrets_key_file\ninvalid or empty: secrets_store_file\ninvalid value 'awss' for field 'architecture'. Expected values are: aws, existing_nodes, deployment\ninvalid value '/hab/a3_deploy_workspace' for field 'workspace_path'. Expected values are: /hab/a2_deploy_workspace\ninvalid or empty: ssh_user\ninvalid or empty: ssh_key_file\ninvalid or empty s3_bucketName\ninvalid or empty: aws profile name\ninvalid or empty: aws region\ninvalid or empty: aws private_custom_subnets\ninvalid or empty: aws public_custom_subnets\ninvalid or empty: aws ssh_key_pair_name\ninvalid value 'aws lb_access_logs' for field 'fals'\ninvalid or empty: aws ami_id\ninvalid or empty: aws automate_server_instance_type\ninvalid or empty: aws automate_lb_certificate_arn\nempty value: aws automate_ebs_volume_iops\nempty value: aws automate_ebs_volume_size\ninvalid or empty: aws automate_ebs_volume_type\nempty value: aws chef_ebs_volume_iops\nempty value: aws chef_ebs_volume_size\ninvalid or empty: aws chef_ebs_volume_type\ninvalid or empty: aws chef_server_instance_type\ninvalid or empty: aws chef_server_lb_certificate_arn\ninvalid or empty: aws managed_opensearch_domain_name\ninvalid or empty URL: aws managed_opensearch_domain_url\ninvalid or empty: aws managed_opensearch_user_password\ninvalid or empty: aws managed_opensearch_username\ninvalid or empty: aws managed_rds_dbuser_password\ninvalid or empty: aws managed_rds_dbuser_username\ninvalid or empty URL: aws managed_rds_instance_url\ninvalid or empty: aws managed_rds_superuser_password\ninvalid or empty: aws managed_rds_superuser_username\ninvalid or empty URL: automate fqdn\nempty value: automate instance_count\nempty value: chef server instance_count"),
 		},
 		{
 			name:    "Verify Failed Ha On Prem Aws Managed Config",
 			args:    args{configFile: "./testdata/HaOnPremDbAwsManagedFailed.toml"},
 			wantErr: true,
-			err:     errors.New("invalid or empty: os_snapshot_user_access_key_id\ninvalid or empty: os_snapshot_user_access_key_secret\nautomate root_ca is missing"),
+			err:     errors.New("invalid or empty: os_snapshot_user_access_key_id\ninvalid or empty: os_snapshot_user_access_key_secret"),
 		},
 		{
 			name:    "Invalid Architecture toml file",
diff --git a/lib/config/testdata/HaAwsManaged.toml b/lib/config/testdata/HaAwsManaged.toml
index abbe98601..566b1499a 100644
--- a/lib/config/testdata/HaAwsManaged.toml
+++ b/lib/config/testdata/HaAwsManaged.toml
@@ -526,10 +526,10 @@ opensearch_server_instance_type = "m5.large"
 postgresql_server_instance_type = "m5.large"
 
 # eg: automate_lb_certificate_arn = "arn:aws:acm...."
-automate_lb_certificate_arn = "arn:aws:acm:ca-central-1:112758395563:certificate/1754e15c-5834-44b0-82a7-0508c3155601"
+automate_lb_certificate_arn = "arn:aws:acm...."
 
 # eg: chef_server_lb_certificate_arn = "arn:aws:acm...."
-chef_server_lb_certificate_arn = "arn:aws:acm:ca-central-1:112758395563:certificate/1754e15c-5834-44b0-82a7-0508c3155601"
+chef_server_lb_certificate_arn = "arn:aws:acm...."
 
 # eg: automate_ebs_volume_iops = "100"
 automate_ebs_volume_iops = "100"