Skip to content

Instantly share code, notes, and snippets.

@kurap
Last active December 28, 2015 04:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kurap/7443697 to your computer and use it in GitHub Desktop.
Save kurap/7443697 to your computer and use it in GitHub Desktop.
#==============================================================================
##
## OPENSSL Nginx (ubuntu)
##
#==============================================================================
####OpenSSL の設定(自己証明書生成)
mkdir /etc/nginx/conf
cd /usr/local/nginx/conf
#CSRの生成
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
#CSR内容表示
openssl asn1parse -i -in server.csr
#パスフレーズを削除し、秘密鍵のファイル名を変更
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
#自己署名して証明書を作成する。
openssl x509 -req -days 1096 -in server.csr -signkey server.key -out server.crt
#証明書のコピー
copy server.crt c:¥apache2¥conf¥certs
copy server.key c:¥apache2¥conf¥certs
#証明書をブラウザにインポートするためのderファイルを作成
openssl x509 -in server.crt -out server.der -outform DER
# nginx に反映
vi /etc/nginx/sites-available/xxx.com
## server{} に追記
server {
listen 80
listen 443 ssl; ## ←443 ssl にした場合はssl on は不要、liten80 と一緒に記述すると80,443両方で待受可能
# ssl on
ssl_certificate /etc/nginx/conf/server.crt;
ssl_certificate_key /etc/nginx/conf/server.key;
}
# conf のチェック
nginx -t
# リロード
service nginx reload
####SSL証明書有効チェック
openssl s_server -cert [ファイル名] -key [秘密鍵ファイル名]
#以下が表示されれば、OK
Using default temp DH parameters
ACCEPT
#上記コマンドでポート4433で接続町状態となる
#ブラウザからポート4433を指定して接続する
#CUIのクライアントプログラム
openssl s_client -connect localhost:4433
チェック
------------
1. cert.pemがx509のフォーマットか?
エラーコード: #0301005
解析方法: openssl x509 -text -in [cert.pem]
でエラーがでないこと。
2. identity.pemが入力パスワードで読めるか?
エラーコード: #0301003
解析方法: openssl rsa -text -passin pass:パスワード -in [identity.pem]
でエラーがでないこと。
3. identity.pemの秘密鍵とcert.pemの公開鍵が正しいPK-pairか?
エラーコード: #0301005
解析方法: openssl rsa -passin pass:[パスワード] -in [identity.pem] -pubout
openssl x509 -in cert.pem -pubkey
のBEGIN PUBLIC KEYとEND PUBLIC KEYの間の出力が一致していること。
4. cert.pemがopen-ca.ariel-networks.comから発行された証明書か?
エラーコード: #0301006
解析方法: openssl x509 -text -in cert.pem
のissuer(発行者)が
Issuer: C=JP, ST=Tokyo, L=Nakameguro, O=Ariel Networks, Inc., CN=ArielAirOne root
となっていること。
[注] 正確には、cert.pemの署名に使われた秘密鍵が、open-ca.ariel-networks.comの秘密鍵かどうか(これのコマンドラインからの確認方法は不明)
5. cert.pemのユーザ名がuser.confのユーザ名と一致しているか?
エラーコード: #0301007
解析方法: openssl x509 -text -in cert.pem
のsubjectのユーザIDがuser.confのユーザIDと一致していること。
6. cert.pemの有効期限が残っているか?
エラーコード: #0301008
解析方法: openssl x509 -text -in cert.pem
のValidityのNot Afterが現在時刻より未来であること。
7. 証明書の検証
openssl verify -CAfile [cacert.pem] [server.crt]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment