2021-01-01から1年間の記事一覧
幕末 は、15年間に多くの歴史的出来事があった。 その中でも、6年だけ存在した 新選組 に焦点を当てます。 年表を作ってみたら、幕末は激動の時代だったと強く感じました。 新選組ファンのために、少し詳しく記述した。 一読すれば、あなたも「新選組」通に…
ウェブブラウザでオレオレ認証局で作成したサーバ証明書のサイトを閲覧する の続きです 前回の記事では、GUIを使って Firefox の証明書を操作した。 前回の記事では、NSS を使って CUI で Firefox の証明書を操作する。 NSS NSS ( Network Security Services…
C言語にて ソケット関数と openssl ライブラリを使って HTTPSサーバを作成する の続きです 証明書チェーン 証明書チェーンとは、サーバの認証に使用される証明書のリストです。 このチェーンは、サーバ証明書から始まり、 サーバ証明書を署名した中間局の証…
ウェブブラウザでオレオレ証明書のサイトを閲覧する の続きです オレオレ認証局 オレオレ認証局とは、開発用途で作成する私設の認証局である。 下記を参照のこと openssl コマンドを使って オレオレ認証局を作成してサーバ証明書を発行する https://ken-ohwa…
openssl コマンドを使って オレオレ認証局を作成してサーバ証明書を発行する の続きです SAN 「SAN」とは、「Subject Alternative Name」の略称で、「サブジェクトの別名」という意味です。 Chrome 58 以降では、ドメイン名とサイト証明書を照合するために c…
openssl コマンドを使って オレオレ証明書を作成する の続きです 認証局 認証局 (CA:Certification Authority)とは、デジタル証明書を発行する機関である。 wikipedia 認証局 https://ja.wikipedia.org/wiki/%E8%AA%8D%E8%A8%BC%E5%B1%80 証明書の発行は有…
ソケット関数と openssl ライブラリを使って HTTPS クライアントを作成する の続きです。 サーバ証明書の検証 サーバー証明書とは、「通信の暗号化」「Webサイトの運営者・運営組織の実在証明」の2つの役割をもつ電子証明書です。 認証局が発行します。 参考…
C言語にて ソケット関数を使って HTTP クライアントを作成する の続きです。 openssl OpenSSLは、SSLプロトコルのソフトウェアである。 C言語のライブラリも備えている。 OpenSSL https://www.openssl.org/ 下記を参照ください。 MAC に openssl をインスト…
C言語にて ソケット関数を使って TCP クライアントを作成する の続きです HTTP クライアント HTTP クライアントとは、 ウェブサーバ(HTTPサーバ) に対して、HTTPプロトコルに則り、 データの送受信を行うプログラムのこと。 この記事で作成するのは、簡単な…
C言語にて ソケット関数を使って エコーサーバを作成する の続きです。 TCP クライアント ソケット関数は、コネクション型の TCP (Transmission Control Protocol) と 非コネクション型の UDP (User Datagram Protocol) をサポートしている。 この記事では、…
DNS 名前解決 ホスト名からIPアドレスを取得するには、 DNSサーバーによる名前解決 (Name Resolution) を利用する。 ホスト名からIPアドレスを取得することを DNS正引き( Forward DNS Lookup)、 IPアドレスからホスト名を取得することを DNS逆引き( Reverse …
C言語にて ソケット関数を使って ウエブサーバを作成する の続きです openssl OpenSSLは、SSLプロトコルのソフトウェアである。 C言語のライブラリも備えている。 OpenSSL https://www.openssl.org/ 下記を参照ください。 MAC に openssl をインストールして…
オレオレ証明書 公開鍵をそれに対応する私有鍵で署名した 自己署名証明書(self-sigened certificate)のこと。 自己署名なので信頼できない。 ウェブブラウザではその旨の警告が表示される。 ubuntuでインストールされるウエブサーバーもこの形式の証明書を使…
openssl OpenSSLは、SSLプロトコルのソフトウェアである。 OpenSSL https://www.openssl.org/ オレオレ証明書 公開鍵をそれに対応する私有鍵で署名した 自己署名証明書(self-sigened certificate)のこと。 wikipedia: 自己署名証明書 https://ja.wikipedia.o…
openssl OpenSSLは、SSLプロトコルのソフトウェアである。 OpenSSL https://www.openssl.org/ C言語のライブラリも提供されている。 ssl-OpenSSL SSL / TLSライブラリ https://www.openssl.org/docs/manmaster/man7/ssl.html OpenSSL libraries https://www.…
C言語にて ソケット関数を使って エコーサーバを作成する の続きです ウエブサーバ ウエブサーバ(Web Server)は、HTTPプロトコルに則り、 ウェブブラウザなどのクラアントに対して HTML を返送するプログラム及びコンピュータである。 この記事で作成するの…
ソケット関数 ソケット(Socket) とはプロセス間通信のためのインターフェースです。 コンピュータ間通信にも使用される。 ソケットに関するシステムコールとC言語プログラミング http://itref.fc2web.com/unix/socket.html ソケット関数とはソケットを扱うC…
C言語にて libiconv を使って ISO-2022-JP と UTF-8 を変換する の続きです。 ISO-2022-JP のファイルを書き出す UTF-8 のファイルを1行ごとに読み込み、 ISO-2022-JP に変換して、 のファイルに書き出す。 FILE *fp; fp = fopen( "utf8.txt", "r"); FILE *…
C言語にて libiconv を使って ISO-2022-JP と UTF-8 を変換する の続きです。 ISO-2022-JP のファイルを読み込む ISO-2022-JP のファイルを1行ごとに読み込み、 UTF-8 に変換して表示する。 FILE *fp; fp = fopen( "iso2022jp.txt", "r"); const size_t LIN…
libiconv libiconv は、文字列の文字コードを変換するC言語のライブラリです。 gnu libiconv https://www.gnu.org/software/libiconv/ MAC では brew コマンドでインストールできる。 https://formulae.brew.sh/formula/libiconv ISO-2022-JP 日本語メールで…
C++ にて VMime を使って メールを送信する の続きです。 対象とするメールサーバ ローカルネット内に建てた dovecot サーバ および Gmail サーバ Gmail サーバの仕様 サーバ名とポート番号 サーバ名:pop.gmail.com ポート番号 995:(SSL) 下記にあるように…
C++ にて VMime を使って 埋め込み画像付きのメールを作成する の続きです。 埋め込み画像付きのメールの構造 下記のように、multipart の中に plain の本文とHTMLのパートと埋め込み画像がある。 Content-Type: multipart/alternative Content-Type: text/p…
C++ にて VMime を使って メールを送信する の続きです。 埋め込み画像付きのメールの仕様 メールに画像を埋め込みHTMLパートから参照することができる。 画像ファイルの添付とは異なる。 RFC 2387に規定がある。 RFC2387 The MIME Multipart/Related Conten…
C++ にて VMime を使って HTMLメールを作成する の続きです。 HTML メールの構造 下記のように、multipartの中に本文とHTMLのデータがある。 Content-Type: multipart/alternative Content-Type: text/plain 本文のデータ Content-Type: text/html HTML のデ…
C++ にて VMime を使って メールを送信する の続きです。 HTML メールの仕様 RFC 2046、 RFC2854 に規定はあるが、 決め事は多くない。 RFC 2046 Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types http://www.t-net.ne.jp/~cyfis/rfc/mi…
C++ にて VMime を使って ファイルからメールを読む の続きです。 添付ファイル付きのメールの構造 下記のように、multipartの中に本文と添付ファイルのデータがある。 Content-Type: multipart/mixed; Content-Type: text/plain; charset=us-ascii 本文のデ…
C++ にて VMime を使って ファイルからメールを読む の続きです。 VMime の 日本語サポート VMime のデフォルトの文字セットは 7ビットASCIIです。 日本語など非ASCIIテキストにも対応している。 下記は、VMime Book に掲載されている例 4.7 文字セットおよ…
C++ にて VMime を使って メールを送信する の続きです。 メールをファイルから読む 下記は、VMime Book に掲載されている例 5.1 メッセージの解析 https://ken-ohwada.hatenadiary.org/entry/2020/12/30/160715 ファイルからメールを読んで解析する例 // Re…
C++ にて VMime を使って メールを送信する の続きです。 アクセストークン を取得する libcurl のときと同じです。 C 言語にて libcurl を使って Gmail + OAuth で メールを送信する VMime でアクセストークン を設定する VMimeのサイトに記載がある VMime …
C++ にて VMime を使って メールを送信する の続きです。 TLS TLS (Transport Layer Security) は、インターネットにて 通信路を暗号化するためのプロトコルです。 参考 : wikipedia TLS Gmail では必須です。 Gmail 送受信時のメールの暗号化 VMime の TLS…