2017-11-14 10 views
0

私はそうではないWSO2 ESBと私は次の疑問を持っています。プロトコルとしてHTTPの代わりにHTTPSを使用するWSO2 ESB APIを正しく作成するにはどうすればよいですか?

私は自分のCarbonサーバーにいくつかのAPIをデプロイしました。これはうまく動作します。

これらのAPIは、HTTPをプロトコルとして使用しています。何らかの理由で私はそれをHTTPSに変更しなければなりません。

マイドゥーがある:私は(リソースタグの)プロトコル属性を変更する必要が値の形式HTTPhttpsのか?

<?xml version="1.0" encoding="UTF-8"?> 
<api context="/meteo_forecast_weekly_v2/location" name="meteo_forecast_weekly_v2" xmlns="http://ws.apache.org/ns/synapse"> 
    <resource methods="GET" protocol="http" uri-template="/{localizationId}"> 
     ............................................................... 
     ............................................................... 
     ............................................................... 

または私はまた私のカーボンサーバーに証明書を設定する必要がありますか?

EDIT-1:私はこれを取得WSO2のスタックトレースの中へ

$ curl -k https://XXX.YYY.ZZZ.WWW:8280/meteo_forecast_weekly_v2/location/1 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol 

私はBHAにより示唆されるように行うことをtryiedが、私はこの方法で呼び出しを行うとき、私はこの不明なプロトコルエラーを取得エラーログ:

TID: [-1] [] [2017-11-14 14:46:00,107] ERROR {org.apache.synapse.transport.passthru.SourceHandler} - HttpException occurred {org.apache.synapse.transport.passthru.SourceHandler} 
org.apache.http.ProtocolException: Invalid request line: ü8Ò�;Cá©h0ß©�ø_¹i°eõ»Ê.,q5© À0À,À(À$ÀÀ 
     at org.apache.http.impl.nio.codecs.AbstractMessageParser.parse(AbstractMessageParser.java:208) 
     at org.apache.synapse.transport.http.conn.LoggingNHttpServerConnection$LoggingNHttpMessageParser.parse(LoggingNHttpServerConnection.java:407) 
     at org.apache.synapse.transport.http.conn.LoggingNHttpServerConnection$LoggingNHttpMessageParser.parse(LoggingNHttpServerConnection.java:381) 
     at org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:265) 
     at org.apache.synapse.transport.http.conn.LoggingNHttpServerConnection.consumeInput(LoggingNHttpServerConnection.java:114) 
     at org.apache.synapse.transport.passthru.ServerIODispatch.onInputReady(ServerIODispatch.java:82) 
     at org.apache.synapse.transport.passthru.ServerIODispatch.onInputReady(ServerIODispatch.java:39) 
     at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:113) 
     at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:159) 
     at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:338) 
     at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316) 
     at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277) 
     at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105) 
     at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.http.ParseException: Invalid request line: ü8Ò�;Cá©h0ß©�ø_¹i°eõ»Ê.,q5© À0À,À(À$ÀÀ 
     at org.apache.http.message.BasicLineParser.parseRequestLine(BasicLineParser.java:287) 
     at org.apache.http.impl.nio.codecs.DefaultHttpRequestParser.createMessage(DefaultHttpRequestParser.java:119) 
     at org.apache.http.impl.nio.codecs.DefaultHttpRequestParser.createMessage(DefaultHttpRequestParser.java:51) 
     at org.apache.http.impl.nio.codecs.AbstractMessageParser.parseHeadLine(AbstractMessageParser.java:156) 
     at org.apache.http.impl.nio.codecs.AbstractMessageParser.parse(AbstractMessageParser.java:206) 
     ... 14 more 
TID: [-1] [] [2017-11-14 14:46:00,113] INFO {org.apache.synapse.transport.passthru.SourceHandler} - Writer null when calling informWriterError {org.apache.synapse.transport.passthru.SourceHandler} 

なぜですか?何が問題ですか?

答えて

1

はい、の値を変更するだけです。デフォルトでは、ESBはデフォルトのキーストア(<ESB_HOME>/repository/reources/security/wso2carbon.jks)を使用します。プロダクションでは、change the default keystoreをお勧めします。

+0

些細な質問は許してください。もしそうなら、WSO2 APIを呼び出すマシンで証明書を使用する必要がありますか?現時点では、cURLを使用してシェルからAPIを呼び出しています。私はHTTPS APIを呼び出すために何をする必要がありますか?何らかの形で証明書を含めることができますか? – AndreaNobili

+0

さて、httpsサービスを呼び出すための証明書は必要ありません。相互SSLについて話している場合を除き、クライアントに証明書を提示するのはサーバーです。 – Bee

+0

私はこのようにしているが、それは動作しません。元の投稿の最後に新しい情報を追加しました。についてどう思いますか? – AndreaNobili

関連する問題