ブログトップ 記事一覧 ログイン 無料ブログ開設

ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き - このページをアンテナに追加 RSSフィード

2017-09-06

debian で無料のSSL/TLS証明書(Let's Encrypt) を使う

|  debian で無料のSSL/TLS証明書(Let's Encrypt) を使うを含むブックマーク  debian で無料のSSL/TLS証明書(Let's Encrypt) を使うのブックマークコメント

昔は,まともなSSL/TLSの証明書*1を取得するには,有料サービスに毎年数万円を支払う必要がありました.また証明書の申請には数日かかります.一度更新手続きや支払いを忘れると,数日間証明書が失効し,その間サービスがが止まってしまう,という恐ろしい事故もおきていました.

しかし今は Let's Encrypt があります.無料で証明書を発行してくれますし,申し込むとその場で証明書は発行されます.更新も自動です.

という訳で, Let's encrypt を使ったSSLの設定方法をまとめます.

具体的には

について手順を書きます.imappop3などの他のサービスは,postfix の手順を参考にすればOKなので,ここでは説明は割愛します

なお説明は debian を前提におこないます. ubuntu も同じ方法で設定できるはずです.

let's encrypt の管理コマンドインストール

aptインストールできます

$ apt install python-certbot-apache

古い debian だと python-certbot-apache がありませんので backport を使います

まず debianバージョンを確認します

$ cat /etc/os-release

例えば PRETTY_NAME が Debian GNU/Linux 8 (jessie) であれば,debianバージョンは jessie なので

jessie-backport というapt line を登録します

登録手順は以下の通り.まず,新しい設定ファイル /etc/apt/sources.list.d/backport.list を用意して,以下の内容を記述します

deb http://ftp.debian.org/debian jessie-backports main

次に

$ sudo apt update

データベース更新します.うまく行けば以下のコマンドで jessie-backports から python-certbot-apache が導入できます

$ apt install python-certbot-apache -t jessie-backports

apache の設定

上記の手順で管理ツール certbot というコマンドインストールされます.これを使って SSLの証明書の入手,とapacheの設定を行います

$ sudo certbot --apache

設定はこれだけで終わりです. https でapacheアクセスしてみましょう

確認

SSLの証明書は /etc/letsencrypt 以下に保存されます.

重要なファイルは /etc/letsencrypt/live/<ドメイン名>/ 以下にある,以下の3つのファイルです

fullchain.pem
証明書(公開鍵).apache など大抵のソフトウェアはこのファイルを使います
chain.pem
 証明書(公開鍵).上記証明書と同じものですが,ファイル形式が異なります.Nginx などはこちらを使います
privkey.pem
証明書の秘密鍵

debian の apache2 の場合は /etc/apache2/sites-available/010-ssl.conf あたりで

 SSLCertificateFile      /etc/letsencrypt/live/<ドメイン名>/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/<ドメイン名>/privkey.pem

という感じでファイルが指定されることになります

postfix の設定

/etc/postfix/main.cf に,以下の設定を追加します

smtpd_tls_cert_file = /etc/letsencrypt/live/<ドメイン名>/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/<ドメイン名>/privkey.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/<ドメイン名>/chain.pem
smtpd_use_tls=yes

自動更新の設定

以下のコマンドを実行すると,自動で systemd 経由で,証明書を自動更新するようになります

$ sudo certbot renew

確認します

$ sudo systemctl |grep certbot

を実行して

certbot.timer                                         loaded active waiting   Run certbot twice daily

の部分があれば設定は完了です

動作ログは /var/log/letsencrypt/letsencrypt.logです

let's encrypt の証明書は有効期限が3ヶ月あるので,更新は3ヶ月に一回で十分です

更新が不要な場合は 上記ログには"Cert not yet due for renewal"というメッセージが記録されます

*1ブラウザOSに標準で認証局が登録されているやつ

トラックバック - http://d.hatena.ne.jp/pyopyopyo/20170906

2017-08-01

macOS に Tex Live 2017をインストールする

|  macOS に Tex Live 2017をインストールするを含むブックマーク  macOS に Tex Live 2017をインストールするのブックマークコメント

macOS SierraTeX環境を texlive2017 に更新したので手順をまとめます.

この記事は以下のエントリを macOS SierraTex Live 2017 に合わせて更新・加筆したものです.

BasicTeX

パッケージはMacTeXのサブセット版である BasicTeX を使いました.

MacTeXだと全パッケージがインストールされ 2.4GB ものディスク容量が消費されますが,サブセット版である BasicTeX は良くよく使われるパッケージのみをインストールするため必要な容量は 230MB程度です

また不足パッケージは後から簡単にインストールできるので実用上の問題もありません

ダウンロード&インストール

https://tug.org/mactex/morepackages.html から mactex-basic.pkg をダウンロードインストールします

なおMacTeXは

  • 2017 通常版 /usr/local/texlive/2017
  • 2017 BasicTeX /usr/local/texlive/2017basic
  • 2016 BasicTeX /usr/local/texlive/2016basic

という感じでディレクトリを分けてファイルを配置します

デフォルトTeX環境の選択は,"TeX Distribution"というアプリで行います.

メニューの”システム環境設定"にアイコンがあります.Spotlight検索TeX Distribution でも起動できます)

このアプリ

  • /Library/TeX/texbin
  • /Library/TeX/Root
  • /Library/TeX/Local
  • /Library/TeX/Documentation

というシンボリックリンクを管理していて,これらリンクデフォルトtex環境を選択する仕組みになっています.

たとえば mactex-basic.pkg をインストールすると,/Library/TeX/texbin のリンク先は /usr/local/texlive/2017basic/bin/x86_64-darwin

になります.

初期設定

basictex をインストールしたら,必要なパッケージを追加インストールします

方法は二つ

あります.

ここでは,説明が簡単,という理由CUIを使います.

ターミナルを起動し,まずは tlmgr 自身を更新します

$ sudo tlmgr update --self 

次に導入済みパッケージの更新

$ sudo tlmgr update  --all

続いて,必要なパッケージの追加インストール

日本語環境用パッケージをインストール

$ sudo tlmgr install ptex platex jsclasses japanese-otf cjk-gs-integrate adobemapping ptex-fontmaps

個人的に良く使うパッケージをインストール

$ sudo tlmgr install  type1cm subfigure dvipdfmx multirow

日本語フォントの設定

フォント周りで重要なパッケージは

  • cjk-gs-integrate
  • adobemapping
  • ptex-fontmaps

です

adobemapping を入れておかないとdvipdfmxでエラーが出ます

フォントの登録

$ cd /usr/local/texlive/2017basic/texmf-dist/scripts/cjk-gs-integrate
$ sudo ./cjk-gs-integrate.pl --link-texmf --force
$ sudo mktexlsr

これで,/usr/local/texlive/texmf-local/fonts以下に,フォントファイルへのシンボリックリンクが自動作成されます



フォントの変更

フォントが登録できたら,pdfに埋め込むフォントヒラギノの N シリーズ に変更

$ sudo updmap-sys --setoption jaEmbed hiragino-elcapitan-pron

自動で extractbb が実行されるようにする

以下の内容で /usr/local/texlive/texmf-local/web2c/texmf.cnf を用意します

shell_escape_commands = \
bibtex,bibtex8,bibtexu,upbibtex,biber,\
kpsewhich,\
makeindex,mendex,texindy,xindy,\
mpost,upmpost,\
repstopdf,epspdf,extractbb

古い TeX環境の削除

uninstallは簡単です

MacTex 2016を消したい場合は /usr/local/texlive/2016basic をディレクトリ毎削除するだけです

$ sudo rm -rf /usr/local/texlive/2016basic

トラブルシューティング

pdfに画像が貼れない/gsコマンドが無い
ghostscript (gsコマンド) がインストールされていないと dvipdfmx 経由で作成する pdf に画像が貼れない場合があります.ghostscript をインストールするには https://tug.org/mactex/morepackages.html の mactex-additions.pkg から ghostscriptを選択してインストールのが楽そうです
LaTeXIt を使いたい
gsコマンドが必要なので,あらかじめ上記の手順でghostscriptをインストールして http://www.chachatelier.fr/latexit/ からdmgダウンロードインストールする.
TeX Live Utility.app を使いたい
https://code.google.com/p/mactlmgr/
dvipdfmx がCould not find encoding file “H”. というエラーを出す
adobemapping パッケージをインストールすると直ります

まとめ

インストール後の /usr/local/texlive/2017basicのサイズは 570MB でした.(2014basicの頃より200MBほど小さくなったようです)

全部インストールすると 2.4GB程度だそうで,かなりディスク容量を節約できたようです.



[改訂第6版] LaTeX2ε美文書作成入門
奥村 晴彦 黒木 裕介
技術評論社
売り上げランキング: 25,636

トラックバック - http://d.hatena.ne.jp/pyopyopyo/20170801

2017-06-08

ポインタからクラス名を調べる方法

|  ポインタからクラス名を調べる方法を含むブックマーク  ポインタからクラス名を調べる方法のブックマークコメント

c++で、ポインタからクラス名や型名を調べる処理は、以下の2ステップで実現できます

  • typeid(obj).name() で型名の文字列を取る
  • abi::__cxa_demangle() で demangle する

サンプルコードは以下の通り

#include <typeinfo>
#include <cxxabi.h>

#include <iostream>

int 
main()
{
  class MyClass {
     int value;
  };
  MyClass *ptr = new MyClass;

  char buf[64] = "unknown";
  size_t len = sizeof(buf);
  std::cout << abi::__cxa_demangle(typeid(*ptr).name(), buf, &len,NULL) << std::endl;

  delete ptr;
  return 0;
}

実行すると

main::MyClass

と出力されます

abi::__cxa_demangle() には第2引数にNULLを渡す使い方もありますが、NULLを渡す方法では free() を呼ばないとメモリリークします。上記コードの buf[]の様に事前にメモリを確保して、それを第2引数で渡す方が、コードがシンプルに書けます

参考URL

トラックバック - http://d.hatena.ne.jp/pyopyopyo/20170608

2017-06-01

日本語フォルダ名を英語にする方法

|  日本語フォルダ名を英語にする方法を含むブックマーク  日本語フォルダ名を英語にする方法のブックマークコメント

デスクトップダウンロード,公開,画像,ビデオのようなディレクトリ名を英語名に変更するには以下のコマンドを実行する

$ LANG=C xdg-user-dirs-update --force

設定ファイル

システムの既定値(デフォルト値)は /etc/xdg 以下の設定ファイルで定義されている.たとえば /etc/xdg/user-dirs.default など.

詳細は man page に色々書いてある

$ man xdg-user-dir
$ man xdg-user-dirs-update
トラックバック - http://d.hatena.ne.jp/pyopyopyo/20170601

2016-11-06

macOS に Tex Live 2016をインストールする

|  macOS に Tex Live 2016をインストールするを含むブックマーク  macOS に Tex Live 2016をインストールするのブックマークコメント

macOS Sierra の TeX環境を texlive2016 に更新したので手順をまとめます.

この記事は以下のエントリを macOS Sierra と Tex Live 2016 に合わせて更新・加筆したものです.

BasicTeX

パッケージはMacTeXのサブセット版である BasicTeX を使いました.

MacTeXだと全パッケージがインストールされ 2.4GB ものディスク容量が消費されますが,サブセット版である BasicTeX は良くよく使われるパッケージのみをインストールするため必要な容量は 280MB程度です

また不足パッケージは後から簡単にインストールできるので実用上の問題もありません

ダウンロード&インストール

https://tug.org/mactex/morepackages.html から mactex-basic.pkg をダウンロードインストールします

なおMacTeXは

  • 2016 通常版 /usr/local/texlive/2016
  • 2016 BasicTeX /usr/local/texlive/2016basic
  • 2015 BasicTeX /usr/local/texlive/2015basic

という感じでディレクトリを分けてファイルを配置し,/usr/texbin というシンボリックリンクデフォルトバイナリを切り替える,という仕組みになっています.

たとえば mactex-basic.pkg をインストールすると,/usr/texbin のリンク先は /usr/local/texlive/2016basic/bin/x86_64-darwin

になります.

シンボリックリンクの切り替えは,GUIであれば「システム環境設定」の「TeX Distribution」から行います.

初期設定

basictex をインストールしたら,必要なパッケージを追加インストールします

方法は二つ

あります.

ここでは,説明が簡単,という理由CUIを使います.

ターミナルを起動し,まずは tlmgr 自身を更新します

$ sudo tlmgr update --self 

次に導入済みパッケージの更新

$ sudo tlmgr update  --all

続いて,必要なパッケージの追加インストール

日本語環境用パッケージをインストール

$ sudo tlmgr install ptex platex jsclasses japanese-otf jfontmaps cjk-gs-integrate adobemapping 

個人的に良く使うパッケージをインストール

$ sudo tlmgr install  type1cm subfigure dvipdfmx multirow

日本語フォントの設定

フォント周りで重要なパッケージは

  • jfontmaps
  • cjk-gs-integrate
  • adobemapping

です

あらかじめインストールしておきます

$ sudo tlmgr install jfontmaps cjk-gs-integrate adobemapping

adobemapping を入れておかないとdvipdfmxでエラーが出ます

フォントの登録

$ cd /usr/local/texlive/2016basic/texmf-dist/scripts/cjk-gs-integrate
$ sudo ./cjk-gs-integrate.pl --link-texmf --force
$ sudo mktexlsr

これで,/usr/local/texlive/texmf-local/fonts以下に,フォントファイルへのシンボリックリンクが自動作成されます

登録済みフォントの一覧を確認します

$ kanji-config-updmap status

フォントの変更

フォントが登録できたら,pdfに埋め込むフォントヒラギノの N シリーズ に変更

$ kanji-config-updmap hiragino-elcapitan-pron

自動で extractbb が実行されるようにする

以下の内容で /usr/local/texlive/texmf-local/web2c/texmf.cnf を用意します

shell_escape_commands = \
bibtex,bibtex8,bibtexu,upbibtex,biber,\
kpsewhich,\
makeindex,mendex,texindy,xindy,\
mpost,upmpost,\
repstopdf,epspdf,extractbb

古い TeX環境の削除

uninstallは簡単です

MacTex 2015を消したい場合は /usr/local/texlive/2015basic をディレクトリ毎削除するだけです

$ sudo rm -rf /usr/local/texlive/2015basic

トラブルシューティング

pdfに画像が貼れない/gsコマンドが無い
ghostscript (gsコマンド) がインストールされていないと dvipdfmx 経由で作成する pdf に画像が貼れない場合があります.ghostscript をインストールするには https://tug.org/mactex/morepackages.html の mactex-additions.pkg から ghostscriptを選択してインストールのが楽そうです
LaTeXIt を使いたい
gsコマンドが必要なので,あらかじめ上記の手順でghostscriptをインストールして http://www.chachatelier.fr/latexit/ からdmgダウンロードインストールする.
TeX Live Utility.app を使いたい
https://code.google.com/p/mactlmgr/
dvipdfmx がCould not find encoding file “H”. というエラーを出す
adobemapping パッケージをインストールすると直ります

まとめ

インストール後の /usr/local/texlive/2016basicのサイズは 570MB でした.(2014basicの頃より200MBほど小さくなったようです)

全部インストールすると 2.4GB程度だそうで,かなりディスク容量を節約できたようです.



[改訂第6版] LaTeX2ε美文書作成入門
奥村 晴彦 黒木 裕介
技術評論社
売り上げランキング: 25,636

ねこ丸ねこ丸 2016/12/05 15:20 こんにちは、 すでに切ってある,GPTパーテーション
WIN8.1-64からはじめました。
お決まりの、先頭から 300MB、100MB、128MB、win-C:の構成ですが、300MB回復(winPE)を縮小して、そこにgrub2を入れるのかと思っておりますが、webサイトを見ましても説明がよく理解できません。
実際にはどのようにすればよいのでしょうか?
それではよろしくお願いします。