LoginSignup
5
6

More than 5 years have passed since last update.

SSL自己署名証明書作成(webサーバ:nginx)

Posted at

Manual

SSL鍵配置ディレクトリを作成

## root user

cd /etc/nginx
pwd
mkdir -p ssl/{work,key,cert}
chmod 700 ssl/key

DOMAIN_NAME='example.com'
echo $DOMAIN_NAME

乱数生成

## 
## 鍵を作成するための乱数を生成する
## 

cd /etc/nginx/ssl
dd if=/dev/urandom of=work/${DOMAIN_NAME}.rand count=1024 bs=1024
chmod 700 work/${DOMAIN_NAME}.rand

秘密鍵生成

## 
## openssl genrsaコマンドでRSA形式の秘密鍵を生成
## 擬似乱数を渡して、2048bitで暗号化している
## 
cd /etc/nginx/ssl
openssl genrsa -rand work/${DOMAIN_NAME}.rand -des3 2048 > key/${DOMAIN_NAME}.key
  # 秘密鍵のパスフレーズを入力

ls -l key/${DOMAIN_NAME}.key
chmod 700 key/${DOMAIN_NAME}.key

CSR生成

##
## CSRとは、サーバ証明書への署名を認証局へ要求するための申請書のようなもの
## Certificate Signing Request
## CSR作成時に、コモンネーム(https通信したいドメイン名)や運営者情報などの入力を促される
## (各認証局に署名を依頼する場合、email, passwordなどの入力はemptyのままにしておくよう注意書きしている認証局が多い)
## CSRはここで入力した情報に加えて、さっき作った秘密鍵と対になる公開鍵情報も含まれている
## 
cd /etc/nginx/ssl
openssl req -new -key key/${DOMAIN_NAME}.key -out work/${DOMAIN_NAME}.csr
  # pass phraseは、先ほど設定した秘密鍵のパスを入力する
  # 秘密鍵から公開鍵を算出するため、秘密鍵を指定する必要がある
  # (秘密=>公開の特定は簡単、公開=>秘密の特定はほぼ不可能という暗号アルゴリズムの特性)
chmod 700 work/${DOMAIN_NAME}.csr

自己署名

cd /etc/nginx/ssl
openssl req -x509 -in work/${DOMAIN_NAME}.csr -key key/${DOMAIN_NAME}.key -out cert/${DOMAIN_NAME}.self.crt -days 3650
  # 10年間有効な自己署名のサーバ証明書を作成
chmod 700 cert/${DOMAIN_NAME}.self.crt

パスフレーズ解除版の証明書作成する

cd /etc/nginx/ssl
openssl rsa -in key/${DOMAIN_NAME}.key -out key/${DOMAIN_NAME}.nopass.key
  # 秘密鍵作成時に指定したパスフレーズを入力
chmod 700 key/${DOMAIN_NAME}.nopass.key

conf

server{}ディレクティブ内に以下を記述して再起動.

ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/nginx/ssl/cert/${DOMAIN_NAME}.self.crt;
ssl_certificate_key /etc/nginx/ssl/key/${DOMAIN_NAME}.nopass.key;

Environment

$yum list nginx
インストール済みパッケージ
nginx.x86_64         1:1.6.2-1.22.amzn1         @amzn-updates
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6