diff --git a/tools/ndnsec/cert-dump.cpp b/tools/ndnsec/cert-dump.cpp
index 436b399..e0b99b4 100644
--- a/tools/ndnsec/cert-dump.cpp
+++ b/tools/ndnsec/cert-dump.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2017 Regents of the University of California.
+ * Copyright (c) 2013-2018 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -22,6 +22,8 @@
 #include "ndnsec.hpp"
 #include "util.hpp"
 
+#include <boost/date_time/posix_time/posix_time_duration.hpp>
+
 namespace ndn {
 namespace ndnsec {
 
@@ -172,15 +174,15 @@
     }
     if (isRepoOut) {
       using namespace boost::asio::ip;
-      tcp::iostream request_stream;
-      request_stream.expires_from_now(boost::posix_time::milliseconds(3000));
-      request_stream.connect(repoHost, repoPort);
-      if (!request_stream) {
+      tcp::iostream requestStream;
+      requestStream.expires_from_now(boost::posix_time::seconds(3));
+      requestStream.connect(repoHost, repoPort);
+      if (!requestStream) {
         std::cerr << "fail to open the stream!" << std::endl;
         return 1;
       }
-      request_stream.write(reinterpret_cast<const char*>(certificate.wireEncode().wire()),
-                           certificate.wireEncode().size());
+      requestStream.write(reinterpret_cast<const char*>(certificate.wireEncode().wire()),
+                          certificate.wireEncode().size());
 
       return 0;
     }
diff --git a/tools/ndnsec/cert-gen.cpp b/tools/ndnsec/cert-gen.cpp
index dbab9cb..be0c1e0 100644
--- a/tools/ndnsec/cert-gen.cpp
+++ b/tools/ndnsec/cert-gen.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2017 Regents of the University of California.
+ * Copyright (c) 2013-2018 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -22,6 +22,8 @@
 #include "ndnsec.hpp"
 #include "util.hpp"
 
+#include <boost/tokenizer.hpp>
+
 namespace ndn {
 namespace ndnsec {
 
diff --git a/tools/ndnsec/cert-install.cpp b/tools/ndnsec/cert-install.cpp
index c506a53..e83f41b 100644
--- a/tools/ndnsec/cert-install.cpp
+++ b/tools/ndnsec/cert-install.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2013-2017 Regents of the University of California.
+/*
+ * Copyright (c) 2013-2018 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -22,6 +22,8 @@
 #include "ndnsec.hpp"
 #include "util.hpp"
 
+#include <boost/date_time/posix_time/posix_time_duration.hpp>
+
 namespace ndn {
 namespace ndnsec {
 
@@ -39,10 +41,9 @@
 getCertificateHttp(const std::string& host, const std::string& port, const std::string& path)
 {
   using namespace boost::asio::ip;
+
   tcp::iostream requestStream;
-
-  requestStream.expires_from_now(boost::posix_time::milliseconds(3000));
-
+  requestStream.expires_from_now(boost::posix_time::seconds(3));
   requestStream.connect(host, port);
   if (!requestStream) {
     BOOST_THROW_EXCEPTION(HttpException("HTTP connection error"));
diff --git a/tools/ndnsec/util.hpp b/tools/ndnsec/util.hpp
index cb95718..61b6b52 100644
--- a/tools/ndnsec/util.hpp
+++ b/tools/ndnsec/util.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2017 Regents of the University of California.
+ * Copyright (c) 2013-2018 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -33,7 +33,6 @@
 #include <string>
 
 #include <boost/asio.hpp>
-#include <boost/date_time/posix_time/posix_time.hpp>
 #include <boost/exception/all.hpp>
 #include <boost/program_options/options_description.hpp>
 #include <boost/program_options/parsers.hpp>
