'HTTP'에 해당되는 글 4건

  1. 2017.03.27 [Elasticsearch] Head plugin에서 Multi Cluster 연결하기
  2. 2017.02.06 [HttpClient] javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
  3. 2017.02.02 [AWS] ELB + http to https + Nginx 설정
  4. 2007.04.18 [HTTP Method] post vs get

[Elasticsearch] Head plugin에서 Multi Cluster 연결하기

Elastic/Elasticsearch 2017.03.27 15:43

head plugin 을 사용하면서 restful api 를 이용해서 elasticsearch cluster 정보를 얻어 올 수 있습니다.

다만, restful api 를 사용하기 위해서는 아래 설정을 각 노드에 해줘야 합니다.


참고문서)

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html

https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-http.html


http.cors.enabled: true

http.cors.allow-origin: "*"

http.cors.allow-credentials: true


단, 주의 하셔야 하는 점은 해당 노드들이 외부로 노출 되어 있지 않다는 전체 조건이 있을 경우 위와 같이 사용하시기 바랍니다.


저작자 표시 비영리 변경 금지
신고
Trackback 0 : Comment 0

[HttpClient] javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name

ITWeb/개발일반 2017.02.06 11:33

http 통신 기능 구현 시 아래와 같은 에러를 접하는 경우가 있어서 해결 방법을 기록해 봅니다.


[에러내용]

javax.net.ssl.SSLProtocolException: handshake alert:  unrecognized_name

    at sun.security.ssl.ClientHandshaker.handshakeAlert(ClientHandshaker.java:1441)

    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2016)

    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125)

    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)

    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)

    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)

    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394)

    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353)

    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)



[해결방법]

JVM 실행 시 옵션 추가)

-Djsse.enableSNIExtension=false


Application 내부에서 설정 추가)

System.setProperty(“jsse.enableSNIExtension”, “false”);

저작자 표시 비영리 변경 금지
신고
Trackback 0 : Comment 0

[AWS] ELB + http to https + Nginx 설정

ITWeb/개발일반 2017.02.02 10:12

요즘 대부분의 서비스들이 http 를 제거 하고 https 로 서비스 하기 시작했습니다.

AWS 에서 제공하는 SSL 을 이용해서 ELB 에 구성하신 분들의 경우 대부분 아래와 같이 되어 있을 것 같은데요.


http://service    -> elb:80   -> ec2:80

https://service  -> elb:443  -> ec2:80


이와 같이 되어 있다 보니 개별 ec2 에서는 모두 listen 80 만 하게 됩니다.

그래서 client 에서 http 로 들어 왔는지 https 로 들어 왔는지 확인이 필요 한데요.

이 경우 아래와 같은 변수들을 활용해서 설정을 하시면 됩니다.


[참고문서]

http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/x-forwarded-headers.html


[X-Forwarded Headers]

X-Forwarded-For

X-Forwarded-Proto

X-Forwarded-Port


[Nginx 설정]

server {

  listen       80;

  server_name  localhost;


  if ($http_x_forwarded_proto = 'http') {

    return 301 https://$server_name$request_uri;

  }

}


참고 용이니 실 서비스에 적용 시 충분한 테스트 후 적용하시기 바랍니다.

저작자 표시 비영리 변경 금지
신고
tags : AWS, elb, HTTP, https, nginx, ssl
Trackback 0 : Comment 0

[HTTP Method] post vs get

ITWeb/스크랩 2007.04.18 13:17

누가 http method 중 post 와 get 의 차이점이 무엇인지 물어 보더라구요.
인터넷개론에서 배웠던것 같은데 지금은 실무를 하면서 개념적으로 이해를 하면서 사용을 하다 보니 명확하게 이론적으로 설명을 잘 못해 주겠더라구요..

그래서 찾아 봤습니다.. ^^;

ref. http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

get 과 post 만.. 간단히 설명 드리겠습니다.

- get method
    이 메서드는 form 에 포함되어 있는 entity 즉 request uri 에 의해서 전달이 되어 집니다.
    더 쉽게 얘기 하자면 query string 으로 해서 data 가 전달되는 형식 입니다.
    그냥 plain/text 로 전달되는게 아니고 application/x-www-form-urlencoded 되어 전달 됩니다.

- post method
    이 메서드는 get 방식과 틀리게 body 를 통해서 전달이 되게 됩니다.
    쉽게 얘기 해서 눈으로 봐서는 어떤 data 가 오고 가는지 확인이 힘들죠.
    body 패킷을 분석하게 되면 알수가 있게 됩니다.
   
추가적으로 보안과 관련된 내용인데요.
중요한 정보에 대해서는 get 을 사용하지 말고 post 를 사용하라고 되어 있습니다.
ref. http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3
왜 그런지는 아시죠!!
get 보다는 안전 하지만 역시 body 의 패킷을 분석하면 다 알수 있기 때문에 하나의 guideline 이라고 보시면 좋을것 같습니다.
(보안에 민감한 내용들은.. SSL 을 사용하기를 권장하구요 ^^* https:// 말이죠.. )

신고
tags : GET, HTTP, POST
Trackback 0 : Comment 0