質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Erlang

Erlangとは、多目的でありガーベッジコレクションを行うプログラミング言語および実行環境です。Erlangは並行処理・分散化された環境・フォルトトレランスを実装しています。

Q&A

解決済

1回答

1058閲覧

ErlangでTLSを用いた通信をしたい

MaSaKai

総合スコア11

Erlang

Erlangとは、多目的でありガーベッジコレクションを行うプログラミング言語および実行環境です。Erlangは並行処理・分散化された環境・フォルトトレランスを実装しています。

0グッド

0クリップ

投稿2020/03/25 09:22

前提

初歩的な原因だとは思いますが何卒お許しください

実現したいこと

TCP/IP上でTLSを用いて通信をしたい

発生している問題・エラーメッセージ

Erlang-- Using SSL application
上記のドキュメントのUpgrade Example - TLS onlyの則り記述したがうまく動かない

Output

1{options,{cacertfile,"cacerts.pem",{error,enoent}}}

該当のソースコード

erlang

1 1 -module(server). 2 2 -export([main/0]). 3 3 4 4 main() -> 5 5 ok = ssl:start(), 6 6 {ok, ListenSocket} = gen_tcp:listen(2345, [{reuseaddr, true}]), 7 7 {ok, Socket} = gen_tcp:accept(ListenSocket), 8 8 ok = inet:setopts(Socket, [{active, false}]), 9 9 Ssl = ssl:handshake(Socket, [{cacertfile, "cacerts.pem"}, {certfile, "cert.pem"}, {keyfile, "key.pem"}]), 10 10 case Ssl of 11 11 {ok, TLSSocket} -> ssl:setopts(TLSSocket, [{active, true}]); 12 12 {error, Reason} -> Reason 13 13 end, 14 14 c:flush(). 15```server.erl 16 17```erlang 18 1 -module(client). 19 2 -export([main/0]). 20 3 21 4 main() -> 22 5 ok = ssl:start(), 23 6 {ok, Socket} = gen_tcp:connect("manjro", 2345, [], infinity), 24 7 Ssl = ssl:handshake(Socket, [{cacertfile, "cacerts.pem"}, {certfile, "cert.pem"}, {keyfile, "key.pem"}], infinity), 25 8 case Ssl of 26 9 {ok, TLSSocket} -> ssl:send(TLSSocket, "PekoPeko"); 27 10 {error, Reason} -> Reason 28 11 end. 29```client.erl 30### 試したこと 31**Upgrade Example - TLS only**だけでなくその上にある**minimal example**も試したが同様にうまくいかなかった。 32 33### 補足情報(FW/ツールのバージョンなど) 34Version : Erlang/OTP 22 35Editor : Nvim 36ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatsuya6502

2020/03/25 15:04

{error,enoent} は "cacerts.pem" ファイルが見つからないというエラーです。Erlangに限らず一般的な話として、SSL通信には認証局の証明書バンドル、サーバーの証明書、サーバーの秘密鍵といったファイルが必要になります。これらのファイルを事前に作成していますか?
MaSaKai

2020/03/25 18:37

証明書等のディレクトリが違いました。初歩的な原因でご迷惑おかけしたこと申し訳ありません。
tatsuya6502

2020/03/25 23:49

解決してよかったです!
guest

回答1

0

自己解決

証明書等のディレクトリが違いました。

投稿2020/03/25 18:37

MaSaKai

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問