OpenSSL | CodeLab https://codelab.website IT業界で働くor興味がある皆様に、システム開発・プログラミングに役立つ情報を沖縄から発信中... Mon, 20 Feb 2023 18:41:56 +0000 ja hourly 1 https://wordpress.org/?v=6.5-alpha-57100 https://codelab.website/wp-content/uploads/2017/02/iconcubes-152-17063-80x80.png OpenSSL | CodeLab https://codelab.website 32 32 210002645 [OpenSSL]pfx ファイルから crt ファイルと key ファイルを取り出す https://codelab.website/openssl-pfx-crt-key/ https://codelab.website/openssl-pfx-crt-key/#respond Sun, 25 Oct 2020 15:00:28 +0000 http://43.206.46.12/?p=1807 SSL 証明書による認証が必要なシステムの API を実行するのに crt ファイルと key ファイルをセットして API を実行しないといけなかったんですが、もらったファイルは pfx ファイルだったので、自分で p […]

The post [OpenSSL]pfx ファイルから crt ファイルと key ファイルを取り出す first appeared on CodeLab.

]]>
SSL 証明書による認証が必要なシステムの API を実行するのに crt ファイルと key ファイルをセットして API を実行しないといけなかったんですが、もらったファイルは pfx ファイルだったので、自分で pfx ファイルから crt ファイルと key ファイルを作成する必要がありました。
Windows 環境だったりすると pfx ファイルなんですよね・・・。
なので、今回は pfx ファイルから crt ファイルと key ファイルを作成する方法を説明していきます。

OpenSSL とは

OpenSSL については下記サイトが参考になると思います。

pfx ファイルとは

pfx ファイルについては下記の説明を見てもらえればと思います。

RFC 7292 参照。パスワードに基づく鍵(暗号)により保護された秘密鍵と、それに関連する公開鍵証明書を保管するために一般に利用されるファイルフォーマットの定義。PFXは PKCS#12 の旧称である。
これは、複数の組み込みオブジェクト、例えば複数の証明書を格納できるコンテナフォーマットである。通常、パスワードにより保護/暗号化される。

Java の鍵ストアのフォーマットとして利用できる。Tomcat では利用できるが Apache では利用できない。

引用元:Wikipedia

pfx ファイルから crt ファイルを作成する

下記コマンドを実行し pfx ファイルから crt ファイルを作成します。

$ openssl pkcs12 -in sample.pfx -clcerts -nokeys -out sample.crt

pfx ファイルから key ファイルを作成する

下記コマンドを実行し pfx ファイルから key ファイルを作成します。

$ openssl pkcs12 -in sample.pfx -nocerts -nodes -out sample.key

最後に

お客さんの環境は Windows であることが多く、 pfx ファイルで SSL 証明書をもらうことがあると思いますが、その時もあせることなく、今回のコマンドを利用して Apache などの Web サーバーに設定可能な証明書を作成できるようになりたいですね。

The post [OpenSSL]pfx ファイルから crt ファイルと key ファイルを取り出す first appeared on CodeLab.

]]>
https://codelab.website/openssl-pfx-crt-key/feed/ 0 1807
[ 証明書 ] CentOS で オレオレ 証明書 を作成する https://codelab.website/centos-certificate/ https://codelab.website/centos-certificate/#respond Mon, 28 Nov 2016 10:49:13 +0000 http://43.206.46.12/?p=53 Web サーバを運用していると「 https でアクセスしたい」と言われることがよくあります。 しかも、無料で・・・。 証明書 発行してもらうのにもお金かかるんですけど・・・。 オレオレ 証明書 ならお金もかからず、 H […]

The post [ 証明書 ] CentOS で オレオレ 証明書 を作成する first appeared on CodeLab.

]]>
Web サーバを運用していると「 https でアクセスしたい」と言われることがよくあります。
しかも、無料で・・・。

証明書 発行してもらうのにもお金かかるんですけど・・・。

オレオレ 証明書 ならお金もかからず、 HTTPS の設定もできるってことで、オレオレ 証明書 を作成し、WEBサーバに設定した時の手順をまとめました。もし、同じ悩みを抱えている方がいれば参考にしてもらえればと思います。

環境

今回オレオレ 証明書 の環境は以下の通りです。

  • OS : CentOS 6.x
  • WebServer : Apache 2.2

証明書 作成手順

mod_sslインストール

mod_ssl をインストールします。これがないと SSL が使えません。

$ sudo yum -y install mod_ssl

証明書作成

証明書の作成に必要な秘密鍵を作成します。

まず、秘密鍵を配置したい場所へ移動します。

$ sudo cd /etc/pki/tls/certs/

そこで秘密鍵を作成します。

$ sudo make [ドメイン名].key
$ sudo openssl rsa -in [ドメイン名].key -out [ドメイン名].key

この時[ドメイン名]には FQDN を設定します。

次に、 CSR ファイルを作成します。

$ sudo make [ドメイン名].csr

上記コマンド実行すると下記のようなメッセージが出るので、それぞれ値を入力していきます。

Country Name:[国コード]
State or rovince Name:[県]
Locality Name:[市]
Organization Name:[組織名]
Organizational Unit Name:[部署名]
Common Name:[ドメイン名]
Email Address:[メールアドレス]
A challenge password:空欄
An optional company name:空欄

Country Name には国コードを設定します。
日本は「 JP 」になります。

State or rovince Name には都道府県名を設定します。
Tokyo 」とか「 Osaka 」とか。

Locality Name には市区町村名を設定します。
Machida 」とか。

Organization Name には組織名や会社名を設定します。
個人の場合は特に入力しなくても大丈夫です。

Organization Unit Name には部署名を設定します。
個人の場合は特に入力しなくても大丈夫です。

Common Name には秘密鍵を作った時のファイル名、つまり、 FQDN を設定します。

Email Address にはメールアドレスを設定します。

A challenge password は空欄のままでOKです。

An optional company も空欄のままでOKです。

これで CSR ファイルの作成が完了します。

最後に、証明書(公開鍵)を作成します。

ここでは約10年間有効な証明書を作成したいと思います。
有効期間を長く設定してるのは、有効期限が切れて証明書を再作成する手間が惜しいからです。
ここは状況に応じて臨機応変に変更すれば良いと思います。

$ sudo openssl x509 -in [ドメイン名].csr -out [ドメイン名].crt -req -signkey [ドメイン名].key -days 3650

これで証明書(公開鍵)の作成が完了しました。

Apache の設定

最後に Apache の設定を行い、 Web サーバが先ほど作成した証明書を利用できるようにします。

ssl.conf の編集

mod_ssl をインストールすると「 /etc/httpd/conf.d 」に ssl.conf というファイルが作成されると思いますので、
そのファイルを編集していきます。

$ sudo vim /etc/httpd/conf.d/ssl.conf

~省略~
SSLCertificateFile /etc/pki/tls/certs/[ドメイン名].crt
~省略~
SSLCertificateKeyFile /etc/pki/tls/certs/[ドメイン名].key
~省略~

それぞれ ssl.conf というファイルの「106行目」「113行目」あたりに上記の記述があると思いますので、先ほど作成したファイル名を設定します。

設定が完了したら忘れずにApacheを再起動します。

# /etc/rc.d/init.d/httpd restart

これで、Web サーバでオレオレ証明書が使えるようになります。

最後に

オレオレ証明書の作り方を覚えておけば個人のサイトや検証環境などでも活用できるので、覚えておいて損は無いと思います。

The post [ 証明書 ] CentOS で オレオレ 証明書 を作成する first appeared on CodeLab.

]]>
https://codelab.website/centos-certificate/feed/ 0 53