이 명령어를 입력하면 해당 키의 비밀번호를 입력하게되는데 이 파일을 사용하기 위해서 꼭 필요하니
어딘가에 메모해두자.
HTTPS로 run 시키기
실행시킬 스프링 프로젝트의 resouces에 ssl 폴더를 만들어주고 이 안에 keystore.p12 파일을 넣어준다.
properties 세팅 .
# application-aws.ymlserver:port:443# aws 환경에서 사용할 포트ssl:key-store:classpath:ssl/keystore.p12key-store-type:PKCS12key-store-password:${P12_KEY}enabled:true
나는 yml이 편해서 yml로 만들어주었다 . 이렇게 세팅을 마치고 빌드한후에 실행시켜주면
도메인으로 접근하고 api 요청에대한응답도 잘 받아오는걸 확인할수있다.
https 가 중요하다고하지만 포트폴리오 단계에서적용해볼 생각은 한번도 해본적없었는데 우연히 https에서 http로 요청하면 에러가 발생한다는걸 알게되고 멀리 돌아왔지만 스프링을 https로 호스팅하는 방법도 알게되어서 굉장히 기쁘다.
이번에 찾아보면서 nginx에 대해서도 많이 보고 aws에서도 로드밸런서나 route53에 대한부분을 많이 봤는데 nginx 는 추후에 따로 더 찾아보면서 프로젝트에 적용해보고싶어졌다.
스프링에서는 자체적으로 tomcat을 가지고있어서 nginx같은 웹서버가 없이도 웹을 동작시킬수있지만 나중에 서버하나로는 부하가 심한경우에 nginx를 제일앞단에 사용하고 서버를 여러개 붙여서 로드밸런싱이란걸 해줄수있다는점이 상당히 흥미로웠다. 물론 지금단계에서는 웹에올려놔도 나밖에 안보지만 ... 부하가 발생한 후에 적용하면 늦는다는 생각으로 포폴이 어느정도 완성되면 공부해서 적용하고싶다.
로컬에서 잘돌아가던 타임리프 페이지가 ec2 서버에 올리고 페이지를 못찾아서 에러가 발생했다..
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/index.html]")] with root cause
org.thymeleaf.exceptions.TemplateInputException: Error resolving template [/common/header], template might not exist or might not be accessible by any of the configured Template Resolvers (template: "common/layout" - line 6, col 11)
[THYMELEAF][http-nio-8081-exec-1] Exception processing template "index": An error happened during template parsing (template: "class path resource [templates/index.html]")
org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/index.html]")
원인
이렇게 index.html에서 타임리프 레이아웃을 사용해서 헤더를 불러서 붙여놨는데 header를 찾을수없다는 이야기였다.