Skill works with Service Simulator, but now with Echo
I have built my second skill using a Self-Signed certificate. The testing works just fine when I use the service simulator, but when I try to use the voice interface through the Echo I get the following: The certificate does not have a path to a trusted authority. This happens if you are using a self signed certificate. I know I'm using a self-signed certificate, as I've specified this and it works through the Amazon testing interface. My first skill which was built the same way connives to work with a self signed certificate without issue. Has anyone experienced anything similar? Why does it work with the Service simulator but not with the Echo? If there was a problem with my self signed certificate, wouldn't show up with the service simulator? Thanks in advance for any suggestions or assistance.
So now I've upgraded from a self-signed to a valid SSL certificate. That variable has been eliminated. My service is running. I can connect using the Service Simulator and it responds appropriately, but when I try to use it with the Echo, Alexa says, "I am unable to reach the requested skill." However the Alexa history shows that it heard and interpreted the words correctly. I'm stuck, I don't know where to go from here. Why does it work in the Service Simulator but not on the Echo?
Great suggestion, I looked over my access logs and did some step by step testing for both my old skill (#1) and the new one which isn't working (#2). Here are the access logs: Skill #1 (Working skill with self-signed certificate): 184.108.40.206 - - [22/Dec/2015:00:21:52 +0000] "POST /api/codeBlue HTTP/1.1" 200 171 "-" "Apache-HttpClient/4.3 (java 1.5)" 220.127.116.11 - - [22/Dec/2015:00:22:52 +0000] "POST /api/codeBlue HTTP/1.1" 200 171 "-" "Apache-HttpClient/UNAVAILABLE (Java/1.8.0_66)" The first entry is for the API call via the Echo, the second is from the Service Simulator, both respond appropriately. Skill #2 (Not working, valid SSL certificate): 18.104.22.168 - - [22/Dec/2015:00:24:01 +0000] "-" 400 0 "-" "-" 22.214.171.124 - - [22/Dec/2015:00:24:01 +0000] "-" 400 0 "-" "-" API call via the Echo, looks like it is getting an empty request. 126.96.36.199 - - [22/Dec/2015:00:24:06 +0000] "POST /voiceRequest HTTP/1.1" 200 145 "-" "Apache-HttpClient/UNAVAILABLE (Java/1.8.0_66)" API call via the Service Simulator which has the correct request info and responds appropriately. Why the empty call from the Echo?
I am going directly to my service for both Skills. The path is definitely correct. Interestingly, I changed the path in Skill #1 to reference the new service I am trying to get working, and the result was that is passed a blank http request to the server. When I changed the URL back to the original the http request reverted to a properly formed request. In the short term, I have changed my web proxy to route to the port of my new skill. Until I can get this figured out I'm only able to run one skill from my service at a time.
Wait, are you using something like HAProxy to reroute different paths on :443 to different internal ports? I didn't bring that up before because you didn't mention it (and most people aren't proxying), but your issue sounds a lot like a proxy configuration issue. I'd say double and triple check your proxy settings.